[CRX]:在扩展程序中不允许我的js文件

时间:2012-10-10 09:57:24

标签: google-chrome-extension google-chrome-devtools

这是我的应用程序代码:

manifest.json文件:

{
 "name": "YouTradeFx Debugger",
 "version": "1.0",
 "manifest_version": 2,
 "description": "This appliction allow YoutradeFX R&D team to debugging thier applications, by using few tools",
 "browser_action": {
   "default_popup": "app.html"
 }
}

app.html文件:

<html>
<head>
 <title>Source of the application</title>
 <script src="jquery.js"></script>
 <script src="app.js"></script>
</head>
<body style="width: 350px;">
  <span style="display: none;">
   <button id="Http">Send Requests</button>
    <button id="Cookie">Add Lead Params</button>
    <button id="Crm">CRM Faliure</button>
</span>
 <div id="Content">
 <table id="cons">
  <tr>
   <td>Please your username:</td>
   <td><input type="text" id="names" name="user"></td>
  </tr>
  <tr>
  <td><input type="submit" name="send" value="SEND"></td>
 </tr>
 </table>
</div>
</body>
</html>

app.js文件是:

$(document).ready(function(){

 var HoldUser = $("input#names").val();
 $.get("https://www.mywebsite.com/ChromeExt/crm_buffer.php?uid="+HoldUser,function(data){
   $("div#cons").html(data);
 });

});

但是我收到错误消息“拒绝执行内联脚本,因为它违反了以下内容安全策略指令:”script-src'self'chrome-extension-resource:“。”一直......!

为什么不工作?我做错了什么?

2 个答案:

答案 0 :(得分:0)

您正在从https://www.mywebsite.com/ChromeExt/crm_buffer.php?uid="+HoldUser加载HTML(我假设),然后将其注入您的app.html页面。注入HTML时,会对其进行解析,并开始加载所有提及的资源(<script><link><object><img>等)。由于您可能在那里有一些JavaScript文件,并且由于默认的Chrome扩展程序策略不允许扩展程序从远程位置运行脚本,因此会出现安全违规错误。

您可以通过更加像API调用,返回JSON或文本而不是HTML来回复您的网站。如果mywebsite.com不属于您,或者您不想更改其中的任何内容,则可以将CSP中加载的脚本列入白名单,或将data变量返回$.get 1}}并在注入之前删除所有<script>等。

答案 1 :(得分:0)

您正在访问 https://www.mywebsite.com/ChromeExt/crm_buffer.php?uid=“+ HoldUser 页面,因此您可能会点击该按钮,鼠标按下等事件另外,我没有看到 manifest.json 的任何权限。这也可能会阻止请求。您可以通过将以下行添加到 manifest.json

"permissions": [
    "http://*/*",
    "https://*/*",
],