javascript - 内容脚本中的动态脚本加载

标签 javascript google-chrome google-chrome-extension

我想在页面上动态加载一些 JavaScript。我的想法是制作一个内容脚本,该脚本将检查一些条件以选择要加载的脚本。

我的问题是我不知道如何加载脚本。我已经尝试过 JQuery getScript() 函数,但它使用不安全的 eval 调用。我还找到了 chrome.tab.executeScript() 但它不能在内容脚本中使用。

我必须从内容脚本中执行此操作,因为它必须在加载脚本之前检查页面上的某些内容。我不想每次加载页面时都加载所有脚本。

可能吗?

最佳答案

  1. 向您的后台页面发送消息,并在消息监听器中使用 XMLHttpRequest 下载外部脚本。或jQuery.ajax到变量并用 chrome.tab.executeScript 插入它({code: downloadedCode});as a webpage script

  2. 将这些脚本包含在您的扩展中,将它们列在 "web_accessible_resources" 中并注入(inject)as a webpage script设置添加的 <script>元素的src属性为chrome.runtime.getURL("that_script_name") .

关于javascript - 内容脚本中的动态脚本加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32524730/

相关文章:

javascript - 从谷歌地图中删除所有控件

javascript - 如何在 clickgraphitem 上获取 amchart 堆积条形图的标签

javascript - 如何在常规 Chrome 扩展中调用 chrome.devtools.* api 调用,而无需在浏览器中打开 devtools

javascript - 当我包含推荐的安全覆盖时,为什么脚本拒绝在 Google Analytics Chrome 扩展程序中加载?

javascript - Restivus 未设置端点 Meteor 1.4

javascript - 替换chartjs数据

html - 嵌入在 PDF 文件中的附件无法在 Chrome pdf 查看器中打开/预览

即使有前缀,Chrome 和 Safari 上的 CSS 问题

google-chrome - 如何在 Chrome 中管理 Service Worker?

google-chrome - chrome 扩展 - ip 域权限