3

是否能够在 Firefox Web Extension 上导入和使用 JQuery?

我试过这个manifest.json

"background":{
"scripts": ["views/jquery.js", "startup.js"]
},
"permissions": [
"storage"
],
"browser_action": {
"browser_style": true,
"default_title": "iVi - Personalized your Dashboard",
"default_popup": "views/menu.html",
"default_icon": {
  "19": "icons/ivi.png",
  "38": "icons/ivi@2x.png"
}

并在 menu.HTML 上使用 `$(document).ready 事件,如下所示

<script type="text/javascript">
    $(document).ready(function() {
        $("#url").val("123");
    });
</script>

<div class="panel-form-column2">
  <input type="text" id="url" name="url" value="" />
</div>

但它会产生如下错误:

内容安全策略:页面设置阻止了自身资源的加载(“script-src moz-extension:***”)。来源:$(document).ready(function() {

并尝试在 HTML 上而不是在 manifest.json 上导入 JQuery 内联

<script type="text/javascript" src="jquery.js"> </script>

<script type="text/javascript">
    $(document).ready(function() {
        $("#url").val("123");
    });
</script>

仍然遇到同样的问题。

任何的想法?

4

1 回答 1

0

根据这个页面:https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_Security_Policy,内联javascript不会被执行,尝试将你的Javascript放在一个文件中,并将它链接到你的html中,比如你用 jQuery 做了什么。

将 jQuery 放在后台脚本下的清单中也不起作用,因为后台页面和浏览器操作页面是分开的。

这也扩展到任何放置在字符串中的Javascript,例如

<button onclick="test()">example</button>

test()单击按钮时不会运行。

于 2017-11-17T04:29:45.733 回答