获取页面上的所有链接

时间:2013-12-14 23:26:36

标签: javascript jquery html google-chrome

我正在尝试单击按钮并获取页面上的所有链接但我无法在控制台中出现此错误'拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“script-src'self 'chrome-extension-resource:“'

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 个答案:

答案 0 :(得分: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