【问题标题】:Dynamically Inserting Script with Javascript使用 Javascript 动态插入脚本
【发布时间】:2010-02-24 05:30:32
【问题描述】:

长话短说,我正在开发 Google Chrome 扩展程序。默认情况下,扩展无法访问它们正在操作的页面范围内的变量(您需要通过 DOM 进行通信)。

我要做的是在页面中插入一个脚本;这可以通过定义脚本标签和 src 属性来正常工作。

问题是这个脚本需要预先初始化一个变量。为了初始化这个变量,我试图用它的代码内联(而不是从外部源加载)构造一个脚本元素,但我无法让它工作。

这可能吗?如果可以,如何在脚本中定义源?我尝试将包含 JS 源的文本节点附加到脚本元素,但无济于事。

【问题讨论】:

标签: javascript google-chrome-extension


【解决方案1】:

这很糟糕,但最好的方法可能是通过将数据注入 DOM 来传递数据:http://code.google.com/chrome/extensions/content_scripts.html#host-page-communication

您也可以通过执行以下操作来完成此操作:

var script = document.createElement('script');
script.type = 'text/javascript';
script.text = 'alert("It works!");';
document.head.appendChild(script);

我还没有测试过这个,但我猜它会在你的内容脚本中工作。

【讨论】:

  • 谢谢,这就是我尝试的效果。不知道为什么它不起作用,我想知道是不是因为我试图使用 appendChild 而不仅仅是设置 .text 属性。
猜你喜欢
  • 2023-04-08
  • 1970-01-01
  • 2017-01-21
  • 1970-01-01
  • 2016-10-05
  • 2017-05-05
  • 2019-02-13
  • 2011-09-06
  • 1970-01-01
相关资源
最近更新 更多