- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 firefox 插件,它向所有页面注入(inject)两个内容脚本。
var workers = [];
pageMod.PageMod({
include: "*",
contentScriptFile: [
self.data.url("content/autofill/lib_generic.js"),
self.data.url("content/autofill/lib.js"),
],
// add worker to the list
onAttach: function(worker)
{
workers.push(worker);
var filename = getDomainSpecificFilename(worker.contentURL);
worker.on("detach", function()
{
var index = workers.indexOf(worker);
if (index >= 0)
workers.splice(index, 1);
});
}
});
lib_generic.js
包含一个名为 apply_forms(...)
的函数(其描述并不重要)。该函数从 lib.js
文件中调用。但是这个过程不适用于多个页面,所以对于每个这样的页面我都有一个特定的脚本 - 这些文件也只包含一个名为 apply_forms(...)
的函数。
我有一个函数,它将当前域作为输入并返回所需特定脚本的名称,如果应该使用通用,则返回 false
。
我需要的是 - 在必要时 - 使用特定的 apply_forms
重新定义通用 apply_forms
。
我试过
tabs.activeTab.attach({
contentScriptFile: [ filename ]
});
worker.port.emit("apply_forms_loaded");
在其中一个内容脚本中:
var apply_forms_loaded = false;
self.port.on("apply_forms_loaded", function() {
console.log("LOADED");
apply_forms_loaded = true;
});
整个过程是这样开始的:
var timer;
timer = setInterval(function(){
if (apply_forms_loaded) {
clearInterval(timer);
start(); // apply_forms is called somewhere inside this call
}
}, 10);
不幸的是,tabs.activeTab.attach
似乎在不同的上下文中注入(inject)了内容脚本,所以通用函数总是被调用。
我能做些什么来说服 activeTab
在相同的上下文中添加内容脚本,还是我应该以不同的方式来做? (然后是哪一个)
或者问题可能在于 - 我不知道 - 当我发送 apply_forms_loaded
消息时内容脚本没有完全注入(inject)?
我一直在尝试为 Chrome 重新定义函数定义,并且我已经成功了(url to SO question)
感谢您的建议。
最佳答案
没错,通过 pagemod 添加的脚本与通过 tabs.attach 添加的脚本位于不同的 JS 沙箱中。您可以做的是使用新的 exportFunction() 函数将函数注入(inject)到实际窗口中——这样函数就在真实窗口中,并且总是会被覆盖。然后你可以从 unsafeWindow 调用它..
关于javascript - 火狐SDK : redefine content-script function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25740353/
我在一个项目中遇到了这个错误,在这个项目中我使用了“AndEngine”的以下模块, 1) 和引擎2)和EnginePhysicsBox2D扩展3) 和EngineTexturePackerExten
请问,COBOL中关键字REDEFINES的用法是什么? 我无法理解手册的定义。 下面的代码是什么意思? 01 WS_CHARGE_TXT_8X
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
我有一个警报框,如果我目前在测试数据库上,我希望警报框与实时数据库相比具有不同的文本。 所以我声明了一个名为 isTestDb 的变量并将其设置为 True ,但我不断收到这个烦人的错误: Micro
我的问题是关于statement expressions ,它们作为 GNU C 中的扩展添加。请考虑以下代码: #include #include int main(void) { in
我正在创建一个 XML 文件,如下例所示,我尝试 添加 第一 xmlns归因于 标签,但它给了我一个错误: 这是我尝试创建的完整 XML 文件的格式: Glowbox
我正在使用以 avro-1.7.4 格式存储的数据,并尝试使用 Pig数据操纵。当尝试加载数据然后再次存储它们时,我收到以下错误: ERROR 2116: Output Location Valida
我正在尝试创建一个包含嵌入式 Youtube 视频的网站。Chrome 检查器中的控制台似乎出乎意料地开始显示以下错误: Uncaught TypeError: Cannot redefine pro
我刚刚在另一台笔记本电脑上检查了一个正在运行的项目。使用 npm 和 bower 安装所有内容后,当我尝试在本地主机上运行它时,出现以下错误: Uncaught TypeError: Cannot r
我试图动态修改类,例如在一行之前调用 sleep() 。我在运行时使用 Attach 方法将代理附加到 jvm。然后我从 jvm 得到目标类,并修改它(添加一行调用 sleep())。我得到了 red
我的代码如下: /**************************/ NSMutableArray *aa = [[NSMutableArray alloc]init];
我正在使用 Code::Blocks 将 Python(包含 Mosquitto MQTT)脚本重写为 C。作为测试,我使用了 Mosquitto 存储库中提供的以下代码: https://bitbu
这个问题在这里已经有了答案: Is it ok to assign the JavaScript prototype object instead of just its properties? (
运行 lint 时,出现以下错误: Redefining name 'tmp_file' from outer scope (line 38) (redefined-outer-name) 这是我在该
我正在尝试使用 C# 生成以下 xml 元素。 我遇到的问题是出现异常: The prefix " cannot be redefined from " to within the same sta
我遇到了这样一个 Django 模型: class Car(models.Model): type = CharField() ... 但是,pylint 不会发出任何关于重新定义内置
试图弄清楚为什么下面的代码会产生警告 defmodule A do
我正在阅读 PAIP 的第 5.2 章。当我尝试使用完全取自本书的以下形式定义常量时,出现如下所示的错误。我使用 SBCL 1.1.14.debian 作为解释器。我做错了什么? (defconsta
我正在使用 XSLT 更新一些旧的 XML 元数据,我意识到目标输出具有以下命名空间: xmlns:gco="http://standards.iso.org/iso/19115/-3/gco/1.0
我正在尝试用 C 语言实现 COBOL 中使用的 REDEFINES 逻辑。 下面是 COBOL 程序: IDENTIFICATION DIVISION. ENVIRONMENT DIVI
我是一名优秀的程序员,十分优秀!