4

私はクロム拡張に取り組んでおり、onload ハンドラーで window.title を設定しています。ただし、私が変更しているページでは、ドキュメントのタイトルも動的に設定されているようです。リンクされているスクリプトの膨大なコレクションがあります。変更がどこから来ているのかを知らずに、他の誰かが変更しdocument.titleたり、その亜種を変更したりするのを防ぐ方法はありますか? または、変更がどこから来ているのかを簡単に確認する方法はありますか?

4

3 に答える 3

1

title 要素の変更をリッスンする方法の答えをご覧ください。. 特に:

function titleModified() {
    window.alert("Title modifed");
}

window.onload = function() {
    var titleEl = document.getElementsByTagName("title")[0];
    var docEl = document.documentElement;

    if (docEl && docEl.addEventListener) {
        docEl.addEventListener("DOMSubtreeModified", function(evt) {
            var t = evt.target;
            if (t === titleEl || (t.parentNode && t.parentNode === titleEl)) {
                titleModified();
            }
        }, false);
    } else {
        document.onpropertychange = function() {
            if (window.event.propertyName == "title") {
                titleModified();
            }
        };
    }
};
于 2013-08-13T17:32:29.743 に答える
0

This SO answerは、ドキュメントのタイトルの変更をリッスンする方法を提案しています。

おそらく、その手法を使用して、他のスクリプトがタイトルを変更しようとするとすぐに、タイトルを希望するものに戻すコールバックを作成できます。

于 2013-08-14T06:19:22.457 に答える