如何在Chrome扩展程序中获取远程javascript文件
How to get remote javascript file in Chrome Extension
我已经阅读了我在stackoverflow和google中可以找到的所有主题,但仍然无法使其正常工作。
我需要的是 - 将我的 JS 代码保存在服务器上的脚本中,这样我就不需要每次决定进行更改时都重新发布扩展。用户也不必升级他们的扩展。
由于新的安全策略而不起作用的方法:
- 通过将标签添加到注入脚本
- 从 ajax 请求接收到 Eval() 脚本源代码后。
正如谷歌所说,有一些方法可以加载远程脚本。
放宽远程脚本的安全策略
他们是这么说的:
允许通过 HTTPS 从 example.com 加载脚本资源的宽松策略定义可能如下所示:
"content_security_policy": "script-src 'self' https://example.com; object-src 'self'"
好的,我按照他们在清单中所说的做了.json:
"content_security_policy": "script-src 'self' https://beta.tradernet.ru; object-src 'self'"
我尝试在后台加载该脚本.html
<head>
<title>My Awesome Backgound page!</title>
<script src="https://beta.tradernet.ru/js/extension-script.js"></script>
<script src="background.js"></script>
</head>
在我的后台.js我测试在远程文件中声明的对象是否可用。而且它们不可用。我什至不确定远程脚本是否已加载...
如果我在我的弹出窗口中添加类似的标签.html,那么它可以工作并且从远程脚本加载的功能可用......
如何使远程 JavaScript 函数在后台可用.js?
我已经让它在我的工作流程代码格式化程序扩展中工作。你的manifest.json
很好,你现在需要做的是使用 JavaScript 注入该脚本,像这样的事情应该可以做到:
(function () {
'use strict';
var scriptToLoad = document.createElement('script');
scriptToLoad.type = 'text/javascript';
scriptToLoad.async = true;
scriptToLoad.src = 'https://beta.tradernet.ru/js/extension-script.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(scriptToLoad, s);
}());
这允许我访问JS文件中的JavaScript,具有讽刺意味的是,浏览器认为我没有它们,即使执行所有内容都完美无缺。为了绕过浏览器吐出控制台错误,我将所有调用都包装在try/catch块中,我需要的JS。假设您想从extension-script.js
呼叫fireWebSockets()
,您应该执行以下操作:
(function () {
'use strict';
window.addEventListener('load', function () {
try {
fireWebSockets(foo);
} catch (ignore) {}
});
}());
希望对您有所帮助!
相关文章:
- 从ajax请求中获取javascript对象
- 以同步方式获取Javascript Promise的值
- 获取javascript中的公钥格式
- 获取javascript函数中的按钮名称
- 如何在C#中获取Javascript变量值
- 从其名称获取javascript数组对象
- 如何从Selenium获取JavaScript值
- 如何获取javascript输入并在html中调用它
- 获取javascript函数中另一个javascript函数的响应
- 获取javascript中输入元素的索引
- 获取javascript中json_encoded数组的元素
- 在ajax请求中使用jquery获取javascript响应UJS
- 获取Javascript中单选按钮的true或false
- 获取javascript中的元数据属性
- 获取Javascript中DOM元素的screenX
- 如何在事件处理程序中获取 javascript 事件对象
- 使用 JQuery 从表单中获取 javascript 多维数组
- 获取 JavaScript 中复选框的值
- 如何从函数名称中获取JavaScript的源代码
- VBA中有没有一种方法可以获取javascript生成的元素