从用户脚本空间重新定义Firefox中的原生浏览器功能
redefine native browsers function in Firefox from userscript space
在FireFox原生函数中,下面的代码可以重新定义(在Chrome中,你可以只做document.func = newfunc
或与下面相同的事情,但不需要注入代码),注入可以用于小型新函数,但如果需要与用户脚本中的其他函数或变量通信,则需要注入用户脚本的整个代码,
因此,我正在寻找一种方法,在不注入的情况下,从UserScript的空间覆盖FireFox中的本机函数。
// ==UserScript==
// ==/UserScript==
function doh4x()
{
window.history.__proto__.pushState = function(a, b, url) {window.location.href = url;}
}
function inject(func)
{
var source = func.toString();
var script = document.createElement('script');
script.text = "("+ source +")()";
document.head.appendChild(script);
}
inject(doh4x);
使用unsafeWindow
unsafeWindow.history.__proto__.pushState = function (a, b, url) {
window.location.href = url;
};
相关文章:
- 为什么这在IE中的工作方式与在Firefox中不同
- JS可以在Chrome中工作,但不能在Firefox中工作
- createElement("a") - FireFox JavaScript
- 为什么javascript:void(0)在Firefox中不起作用
- Facebook登录按钮没有'不能在Firefox上工作
- jpm的默认Firefox路径没有'不起作用
- js代码从jQuery转换为原生代码
- 重载JS'firefox中的对象原型
- Ajax调用在Firefox中不会自动响应
- JS在firefox中无法正常工作
- firefox插件和dev/panel之间的通信
- IE/Chrome中未定义的函数,但Firefox中没有
- ascii输入键通过firefox中的javascript返回0
- 在firefox和chrome中的左侧显示iframe滚动条
- 如何在Firefox插件中向子进程发送消息,如Chrome原生消息
- 从用户脚本空间重新定义Firefox中的原生浏览器功能
- 单击<视频>与Firefox冲突'他的原生行为
- 如何分发原生Windows DLL以与XUL Firefox扩展中的js-ctypes一起使用
- 制作Firefox'其原生全屏外观类似于Chrome's
- FireFox插件:如何覆盖原生js函数