- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
从 Firefox 36 开始,Function.__exposedProps__
已不可用。相反,如果想要公开要在内容脚本中使用的 chrome JS 对象,则必须将 Components.utils.cloneInto
与目标一起使用范围为 browser.contentWindow.wrappedJSObject 。
如果不打开 cloneFunctions
标志,则仅克隆那些不是函数的属性。转动该标志也会克隆函数,但不会克隆那些通过 Function.prototype
路径定义的函数。对于这些函数,必须通过 Components.utils.exportTo
导出它们,并将目标范围作为公开的对象。
说到我面临的问题。 (由于我无法用语言表达,所以我添加了 MWE)。
Chrome 端 JS:
function Foo(){
this._nFunc = "something";
this._func = function(){/*do something*/};
}
Foo.prototype.Bar = function(){
this._func();
}
Foo.prototype.FooBar = function(){
this._nFunc = "somthing else";
}
var myFoo = new Foo();
var targetScope = browser.contentWindow.wrappedJSObject;
targetScope.myExposedObject = Components.utils.cloneInto(myFoo, targetScope, {cloneFunctions:true});
Components.utils.exportFunction(myFoo.Bar, targetScope.myExposedObject , {defineAs:"Bar"});
Components.utils.exportFunction(myFoo.FooBar, targetScope.myExposedObject , {defineAs:"FooBar"});
内容端JS:
window.myExposedObject.FooBar(); // works
window.myExposedObject._func(); // works
window.myExposedObject.Bar() // error this._func is undefined
记录函数 Bar()
接收到的 this
作用域后,我们得到 _func:(void 0)
,而 _nFunc
已正确记录。
问题:
Bar()
不知何故无法访问调用对象的范围,我尝试将范围作为参数提供给它,即 Foo.prototype.Bar = function(scope){scope._func();}
和 window.myExposedObject.Bar(window.myExposedObject);
。有趣的是,在记录时,范围对象也被证明是(void 0)
。这是为什么? 我确信我在这里遗漏了一些东西。我期望的是暴露的对象将映射到原始对象,并且在将暴露的对象作为参数发送后,chrome 端 JS 将能够获取原始对象。最佳答案
虽然您尝试做的事情可能可以通过 cloneInto
/exportFunction
和放弃 xray 的正确组合来实现,但我建议您只需加载使用 subscript loader 将类层次结构直接放入目标上下文中并且在创建原型(prototype)后仅将最少量的特权函数挂接到原型(prototype)中。
这应该会减少攻击面并避免继承带来的麻烦。
此外,这些可能会很有用:
https://developer.mozilla.org/en-US/docs/Components.utils.createObjectIn https://developer.mozilla.org/en-US/docs/Components.utils.makeObjectPropsNormal
关于javascript - 火狐浏览器插件: function not available after juggling scopes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30331249/
如何从 中删除选定的附件元素 ? 当您已经选择一个附件时,Firefox 似乎无法删除附件。 我尝试删除名称并点击打开,但没有任何反应。 我也试过取消,但附件还在。 我的解决方案是添加一些 oncl
我在 Firefox(版本 38.05)中遇到一个非常奇怪的错误。我有一个如下所示的表单,以及一段用于验证的 Javascript Javascript function ch
所以我知道how to使用 CSS 指定 HTML input 占位符的颜色。然而,这似乎不适用于 Mozilla Firefox 中 number 类型的 input 字段(尽管在 Chrome 中
我创建了简单的类似 hello world 的插件,它绘制了红色框。 嵌入 xulrunner 应用程序后,该插件几乎可以正常工作。 Xulrunner 应用程序在调整应用程序窗口大小时成功重绘了框。
我在 Firefox javascript 中遇到了一件非常奇怪的事情。我创建了一个对象,并使用字符串作为键。当我看到“watch”键是否有值时,如果其中没有“watch”键,它会通过返回 Objec
好的。我知道我问的是一个老生常谈的问题,但我发布这个问题是因为尽管尝试了各种链接上提供的所有解决方案,我的问题仍未得到解决。 我的限制 - 我不想使用已保存的 Firefox 配置文件来保存网站的证书
我只是想知道如何通过浏览器(Firefox)调用 WCF 服务? 我的 WCF 服务如下所示: http://localhost:4249/TestService.svc 我试过这个: [Servic
想要一些帮助来解释为什么这不起作用 from selenium import webdriver browser = webdriver.Firefox() browser.get('https://
Firefox 是一种浏览器,没有它我什至无法想到开发 Web 应用程序。它带有许多方便的附加组件和功能,使开发人员的工作变得轻松。 然而,Firefox 的功能非常庞大,并不是每个人都知道它们。因此
我的吉普车有一个基于浏览器的服务手册。在 IE 中运行良好,但在 Firefox 中运行不佳。基本上有一个目录,您可以展开并深入到子主题,例如 [+] 手拿包 [+] 冷却 [+] 电气 但是 Fir
看了一下,发现了一些东西,但似乎没有什么能像我想要的那样工作。 最初我有我的解决方案与 internet explorer 和 chrome 一起工作,但不是 firefox(这让我不满意不能工作)
编辑我有一个状态栏,可用于启用和禁用插件。 最佳答案 定义时: 您的弹出窗口由两个元素组成,image 和 menuitem。弹出窗口
我在菜单中定位悬停效果时遇到问题。在 Firefox 中没问题,但在 chrome 中悬停效果是 UP 的问题。 Firefox:(这里可以) http://pasteboard.co/1ami0qr
这个问题在这里已经有了答案: †appearing instead of quotation marks (1 个回答) 关闭 5 年前。
我的 ASP.net 网站中的一个 GridView header 有问题。我想在我的标题单元格中显示绿色背景颜色的白色文本。我还想让这些单元格的边框颜色保持黑色。 这是我用于标题的 CSS: .my
我有这个输入,在 :before 标签中定义了一些内容。在 IE 和 Chrome 中它运行完美,但 Firefox 把它弄得一团糟。 内容应该在输入标签中可见,但在 Firefox 中,内容在 in
谁能告诉我为什么 firefox 没有打开并添加了以下 Net::HTTPServer 行? #!/usr/bin/perl # v5.10.1 / linux use strict; use war
我和我的同事在使用 Firefox 3.0.6 访问我们正在开发的 Java 1.6.0___11 Web 应用程序时遇到问题。 session 开始后 1 到 30 分钟内一切正常...但最终,连接
friend , 我注意到在 Firefox v23.0.1 中,HTMLElement(input,button..etc) 的 hasOwnProperty 不起作用, button1.hasOw
有什么办法可以禁用这个“功能”吗? 例如,如果向 http://localhost/foo.html 发出请求,并且我已将其指定为根地址“301”,则所有后续请求都会发送到 foo.html。 htm
我是一名优秀的程序员,十分优秀!