2012-05-17 35 views
5

Theo trang web này externalcss3 Đối tượng CSS Rule của đối tượng styleSheet cho phép bạn truy cập các quy tắc riêng lẻ của biểu định kiểu.Đối tượng Quy tắc CSS

Vì vậy, nếu tôi cố gắng chạy đoạn mã (*) này trên trang ngăn xếp, sử dụng bảng điều khiển javascript, tôi hy vọng sẽ thấy một số Quy tắc CSS được viết trong trang này http://cdn.sstatic.net/stackoverflow/all.css?v=04e0337352b3.

(*)

var mysheet=document.styleSheets[0] 
var myrules=mysheet.cssRules? mysheet.cssRules: mysheet.rules 
for (i=0; i<myrules.length; i++) { 
    console.log(myrules[i].selectorText.toLowerCase()); 
} 

Trên thực tế là kết quả của console.log là một cái gì đó khác với những gì tôi mong đợi:

object[type="application/x-shockwave-flash"], object[type="application/futuresplash"], object[data*=".swf"], object[src*=".swf"], embed[type="application/x-shockwave-flash"], embed[type="application/futuresplash"], embed[src*=".swf"] 

Tôi đã nhỡ gì? Xin lỗi vì sự thiếu hiểu biết của tôi và thời gian của bạn.

+1

Tôi thực sự thấy rằng không có quy tắc nào trong biểu định kiểu duy nhất (0). Vẫn còn kỳ lạ. – Marcin

+1

(Hoặc lỗi bảo mật trong Firefox - thậm chí là lạ!) – Marcin

+0

Tôi đặt cược biểu định kiểu mà bạn đang thấy đang được tiện ích mở rộng của trình duyệt chèn vào ... một cái gì đó như adblock, có thể (ngoại trừ adblock đặt biểu định kiểu ở cuối, vì vậy phải là một cái gì đó khác). –

Trả lời

5

Dường như bạn chỉ có thể truy cập các quy tắc trong tệp CSS nếu chúng thuộc cùng một tên miền.

Đọc chủ đề này: Reading the rules of a cross domain CSS file in DOM

+0

Chắc chắn đúng, mặc dù tôi tò mò tại sao OP có thể đọc bất kỳ quy tắc nào cả. – apsillers

+0

@apsillers - Tôi không biết. Tôi nhận được một TypeError một cách chính xác: 'Không thể đọc được 'độ dài tài sản' của null'. –

Các vấn đề liên quan