相关疑难解决方法(0)

使用.cssRules访问跨域样式表

当我尝试访问外部域上托管的一些CSS文件时,我在Firebug中收到此错误:

Security error" code: "1000
rules = styleSheets[i].cssRules;
Run Code Online (Sandbox Code Playgroud)

我使用的代码是:

$(document).ready(function () {
    $("p").live('mousedown', function getCSSRules(element) {
        element = $(this);
        var styleSheets = document.styleSheets;
        var matchedRules = [],
            rules, rule;
        for (var i = 0; i < styleSheets.length; i++) {
            rules = styleSheets[i].cssRules;
            for (var j = 0; j < rules.length; j++) {
                rule = rules[j];
                if (element.is(rule.selectorText)) {
                    matchedRules.push(rule.selectorText);
                }
            }
        }
        alert(matchedRules);
    });
});
Run Code Online (Sandbox Code Playgroud)

有没有办法解决这个问题,除了移动同一域上的所有CSS文件?

jquery cross-domain

24
推荐指数
3
解决办法
2万
查看次数

如何不在chrome扩展内容脚本中继承样式

我正在编写一个Google Chrome扩展程序,可在每个页面上运行内容脚本.在我的内容脚本中,我在页面中注入了<div>一些<ul><li>子项.我在样式表中为这些元素指定了几种样式.

但我发现在一些随机页面上我的元素将继承网页上定义的样式,因为我没有为我的div指定每个样式属性.

什么是我可以阻止我注入的元素继承这些样式的最佳方法?

在我看来,我可以:

  • 指定样式表中的每一个样式(例如,通过查看没有干扰时计算出的样式),或者
  • 我可以把我的<div>内心<iframe>.但是,我必须在我的内容脚本的iframe和源页面之间传递hella消息,因为chrome://我的iframe src 的URL 和源页面的URL http://将被视为跨源.

css iframe google-chrome-extension

5
推荐指数
1
解决办法
2472
查看次数