我正在开发Google Chrome扩展程序。
我需要做的是:
我被告知chrome阻止了一些类似的交互,但有什么方法可以让这种情况发生? 注入的JavaScript无法访问远程网站, 内容脚本无法修改网页正文 我该怎么办?
答案 0 :(得分:0)
有可能。基本理念是:
CS =内容脚本,在清单中定义。 FS =注入脚本 - 单独的脚本文件。
window.addEventListener("message", function(){});
。在FS中使用window.postMessage({foo: "mydata"}, "*")
,反之亦然。因此,您可以从CS< =>发布任何数据。 FS。将外部数据加载到CS中并将其发送到FS。我已经使用这种技术构建了一些扩展程序并且效果很好。
示例:
内容-的script.js 强>
var el = document.createElement('script');
el.setAttribute('type', 'text/javascript');
el.setAttribute('src', "frontend-script.js");
document.head.appendChild(el);
window.addEventListener("message", function (event) {
console.log(event);
}, false);
<强>前端-的script.js 强>
window.postMessage({
"foo": "data-from-frontend-script"
}, "*");