首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何动态添加或删除Chrome扩展、content-script、javascript文件?

如何动态添加或删除Chrome扩展、content-script、javascript文件?
EN

Stack Overflow用户
提问于 2012-08-29 20:10:52
回答 1查看 2.4K关注 0票数 1

我在做一个chrome扩展。当扩展运行时,我想使用javascript在弹出页面中添加或删除一些内容脚本文件。

在我的扩展中,用户从弹出页面中选择颜色。有5种颜色。所以我有5个javascript文件--每种颜色一个。

那么,弹出页面中的哪些javascript代码会更改运行内容脚本javascript文件呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-30 15:33:49

首先,如果您有5个JS文件,每个文件对应5种颜色,这就有点"Clone And Modify Programming"的味道--这不是一个好习惯。

明智的做法是使用one JS文件,并使用"DRY“代码将颜色作为参数关闭。请参见"Dont Repeat Yourself" (原文如此)。

要从扩展的后台加载整个内容脚本,请参阅"Programmatic injection"

至于动态添加或删除javascript文件...

  1. 文件一旦加载,就不能删除。即使它位于<script>节点中,并且您将其删除,解析的函数、变量、计时器、事件侦听器等仍将在内存中处于活动状态。

代码语言:javascript
运行
复制
1. You can overwrite named objects. For example, if _File‗1.js_ globally sets `x=7;`, you can later load _File‗2.js_ to set `x=11;`.
2. You can cancel named timers -- but you must explicitly code each one.
3. You can cancel known event listeners, but you must again deliberately code this.
4. You **can't** override anonymous objects ( `(function () {... ...} )()` ).
5. You **can't** cancel anonymous timers.

在大多数情况下,这都是比它值得的麻烦。最好把你的代码设计到不必要的地方。

  1. 您可以动态添加JS (或其他类型的文件),请参阅下面的内容。

动态添加JS文件的...

  1. 确保这些文件列在manifest.json文件的web_accessible_resources部分中。例如:

{ "manifest_version":2,"content_scripts":[{ "exclude_globs":,"include_globs":,"js":"MyContentScript.js“,"matches":"http://YOUR_SERVER.COM/YOUR_PATH/*”} ],"name":“动态加载JS,demo","version":"1","web_accessible_resources":"MyJavascript_1.js","MyJavascript_2.js","MyJavascript_3.js”}

  1. 然后,在内容脚本(MyContentScript.js)中,您可以使用chrome.extension.getURL,如下所示:

(scriptNode); D=文档;var scriptNode = D.createElement (‘(scriptNode);’);scriptNode.type = "text/javascript";scriptNode.src = chrome.extension.getURL ("MyJavascript_2.js");var targ = D.getElementsByTagName('head') || D.body || D.documentElement;targ.appendChild javascript

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12177607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档