Firefox CloneInto 不会将功能从附加脚本复制到页面脚本
Firefox CloneInto does not copy function from add-on script to page script
我创建了一个 Greasemonkey 脚本,其中包含一个我想从页面内部脚本访问的对象。
为此,本页描述了几种安全的方法。
其中之一是使用 Components.utils.cloneInto 函数。
下面是一个脚本示例。
// ==UserScript==
// @name Test CloneInto
// @namespace Test CloneInto
// @description Test CloneInto
// @include http://stackoverflow.com*
// @version 1
// @grant GM_xmlhttpRequest
// ==/UserScript==
var myObj = {}
myObj.test = function() {
alert("works");
}
myObj.num = 152;
unsafeWindow.myObj = cloneInto(myObj, unsafeWindow, {cloneFunctions: true});
var scriptDOM = document.createElement("script");
scriptDOM.type = "text/javascript";
scriptDOM.innerHTML = "alert(window.myObj.num);'
alert(window.myObj.test);"
document.getElementsByTagName("head")[0].appendChild(scriptDOM);
"152"显示正确,但随后出现"未定义"而不是我的函数。
然而,我按照文档的建议使用了{cloneFunctions: true}
。
我使用Firefox 34,有人有解决这个问题的想法吗?
编辑:使用谷歌浏览器和Tampermonkey可以正常工作。
编辑 2:在 Greasemonkey 存储库上打开了第 2070 期。
为此,本页描述了几种安全的方法。
这是对附加 SDK 内容脚本的更改。
此更改与 Greasemonkey 或用户脚本无关,Addon-sdk 内容脚本与 Greasemonkey 用户脚本不同。
对于Greasemonkey,我认为这仍然有效:
unsafeWindow.myObj = myObj
相关文章:
- 谷歌应用程序脚本-onFormSubmit-复制到电子表格中的单元格
- 如何使用谷歌应用程序脚本将3个谷歌电子表格中的特定行复制到另一个电子表格中
- 简单的谷歌脚本,将A列的内容复制到B列
- 复制jquery脚本并显示不同的结果
- 我只从vimeo示例中复制了3行脚本 - 它会导致“未定义”错误
- 如何将脚本元素从 iframe 内部复制到父元素
- 使用 jQuery 复制/克隆脚本标记
- Firefox CloneInto 不会将功能从附加脚本复制到页面脚本
- 查找并计算网页中的 iFrame,并将帧数复制到脚本 iMacro
- 为什么Nuget Javascript包复制到脚本文件夹
- 在复制到电子表格时将逻辑构建到 Google Apps 脚本表单中
- 在 asp.net mvc 4 中使用 java 脚本将邮寄地址复制到物理地址
- 历史记录 api 状态更改函数脚本在每次发生更改时复制函数调用
- 文件没有从脚本复制
- 谷歌表格脚本复制值从数组到列
- 谷歌脚本复制列的值并在电子表格中插入新列
- 使用 Google Apps 脚本复制数据
- 使用标记脚本复制 HTML 块
- 使用Windows脚本复制子进程环境
- 从Firefox附加组件内容脚本复制到剪贴板