我需要为greasemonkey创建一个脚本,该脚本使用每次都返回true的方法覆盖默认的document.hasFocus。
这里我尝试使用的代码:
var script = document.createElement('script');
script.type = "text/javascript";
script.innerHTML = 'function document.hasFocus{return true;}';
document.getElementsByTagName('head')[0].appendChild(script);
但它不起作用......
有什么想法吗?
由于
答案 0 :(得分:1)
语法已关闭,可能没有<head>
标记。另外,尽可能避免使用innerHTML
。所以使用:
var scriptNode = document.createElement('script');
scriptNode.type = "text/javascript";
scriptNode.textContent = 'document.hasFocus = function () {return true;}';
var targ = document.getElementsByTagName ('head')[0] || document.body;
targ.appendChild (scriptNode);
但是,在这种情况下,使用unsafeWindow
(Firefox Greasemonkey)几乎没有风险。所以整个脚本代码可以是:
unsafeWindow.document.hasFocus = function () {return true;};
如果它仍然“无效”,请描述 它不起作用(预期,与实际,结果,错误代码等)。链接到目标页面。