我正在尝试为论坛制作一个小小的 chrome 扩展,但我只希望它在论坛的某个区域工作。
问题是我不能只做 "matches": ["subforum"] 因为该论坛中的线程无法通过 URL 区分它们所在的子论坛。
子论坛有自己的 css 样式表,所以我想我是否可以快速检查一下当前样式表是否与 subforum.css 匹配它会正常工作。
基本上我只需要检查样式表的名称,如果不可能,如何准确检查当前样式表是否包含某个单词或元素或其他内容。
我正在尝试为论坛制作一个小小的 chrome 扩展,但我只希望它在论坛的某个区域工作。
问题是我不能只做 "matches": ["subforum"] 因为该论坛中的线程无法通过 URL 区分它们所在的子论坛。
子论坛有自己的 css 样式表,所以我想我是否可以快速检查一下当前样式表是否与 subforum.css 匹配它会正常工作。
基本上我只需要检查样式表的名称,如果不可能,如何准确检查当前样式表是否包含某个单词或元素或其他内容。
您可以遍历样式表本身和 @import 规则
function sheetExists(name){
var s = document.styleSheets, i = s.length, j = 0;
while(i-->0){
if(s[i].href !== null){
if(s[i].href.indexOf(name) !== -1) return true;
}
while(j < s[i].cssRules.length && s[i].cssRules[j].type === 3){
if(s[i].cssRules[j].href !== null){
if(s[i].cssRules[j].href.indexOf(name) !== -1) return true;
}
j++;
}
j = 0;
}
return false;
}
sheetExists('subforum.css');
使用属性包含选择器:
if ($('link[href*="myStylesheet.css"]').length) {
//stylesheet containing "myStylesheet.css" in the href attribute was found
} else {
//not found
}
当然,如果您提供完整的确切属性值,您也可以使用属性等于选择器。
if ($('link[href="path/To/myStylesheet.css"]').length) {
//stylesheet with link="myStylesheet.css" found, do stuff
}