1

毎回 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);

しかし、うまくいきません...

何か案が?

ありがとう

4

1 に答える 1

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;};

それでも「うまくいかない」場合は、どのようにうまくいかないかを説明してください (予想結果、実際の結果、エラー コードなど)。対象ページへのリンクです。

于 2012-06-29T23:29:03.840 に答える