2013-12-14 173 views
-1

我试图点击一个按钮,并获得页面上的所有链接,但我不能,我在控制台中出现此错误'拒绝执行内联脚本,因为它违反了以下内容安全策略指令: “脚本的src '自我' 铬扩展资源:””获取页面上的所有链接

manifest.json的

{ 
    "manifest_version": 2, 
    "name" : "tat", 
    "description": "load", 
    "version": "1.0", 
    "permissions":["tabs", "http://*/*", "background", "activeTab"], 
    "content_scripts": [{ 
    "matches": ["http://*/*"], 
    "js": ["jquery.js","link.js"] 
}], 
    "browser_action": { 
    "default_title": "lol", 
    "default-icon":"images/128.png", 
    "default_popup":"popup.html" 
}, 
    "icons":{ 
    "32":"images/32.png", 
    "128":"images/128.png" 
}, 
    "background": { 
    "page": "background.html" 
} 
} 

POP-UP.HTML

<script type="text/javascript"> 
    var bkg = chrome.extension.getBackgroundPage(); 
    window.addEventListener('load', getAllLinks); 
</script> 

BACKGROUND.HTML

<script> 
var $html = jQuery(html); 
var getAllLinks = function(){ 
    var elementStr = ""; 
    var node = document.createElement("li"); 
    $html.find('a').each(function(){ 
    if(elementoLink.item(i).href.indexOf("operadorPerfil= REV") != -1){ 
    elemento.Str += elementoLink.item(i).href+"<br/>"; 
    node.innerText = elementStr; 
    } 
}); 
} 
chrome.tabs.onUpdated.addListener(function(){  // listen to updated tabs 
    getAllLinks(); 
    }); 
</script> 

回答

1

如果你读了错误消息说的话:

拒绝,因为它违反了以下内容安全策略指令执行联脚本

“script-src'self'chrome-extension-resource:

你会意识到问题的关键在于你的代码直接在HTML文件中。相反,你应该把你的文件在外部.js文件,并使用src属性链接到他们:

<script src="popup.js"></script> 

而且在popup.js把你的代码中有。重复背景页面的过程。

CSP或内容安全策略旨在使开发人员更难实现为XSS攻击和各种其他恶意活动提供攻击媒介的代码。它通过完全阻止特定的“危险”事物的使用,以及仅使用少量推荐的做事方法来做到这一点。例如,除非您特别放宽了CSP设置中的限制,否则将阻止eval。有关哪些CSP块以及它如何影响代码的更多信息,请参阅the Chrome Extensions documentation