2016-04-12 6 views
0

ページのタイトルは外部のJavaScriptによって設定されています。私はそれをする正確な機能を見つけることができません。だから、私は関数を書いてhtmlファイルに配置しました。しかし、それは以前のjavascript関数のタイトルを表示しています。javascriptを使用してhtmlページのタイトルを設定します

<script type="text/javascript"> 

$(document).ready(function() { 
    document.title = 'Pry'; 
}); 

</script> 
+0

'Object.defineProperty(文書、 'タイトル'、{セット:機能(){)(新しいエラーを投げる;}})、それはときにエラーを投げることによって、他のコードで設定されているのWHERE'あなたを教えてくださいそうしようとします。 –

+0

また、MutationObserverを試すこともできます。https://developer.mozilla.org/en/docs/Web/API/MutationObserver – Sam

答えて

1

可能であれば、ユースケースでは変更を聞くのが最善でしょう。

$(document).ready(function() { 
    $("title", "head").change(function() { 
     console.log("Title has changed"); 
     changeTitle(); 
    }); 

    //Trigger Change 
    function changeTitle() { 
     $("title", "head").text("New Title"); 
    } 

    $("title","head").text("test Title").trigger('change'); // triggered elsewhere 
}); 
+0

外部スクリプトは 'change'を引き起こさないでしょう。 – skobaljic

+1

ああ、あなたが知っていることを考えなかった...私が推測している同様のトラックの誰かのためにここを出ると便利です。 – Shakespeare

1

タイトルを定期的に変更することもできます。スクリプトが実際にタイトルを変更する時期はわかりません。スクリプトは一度タイトルを変更した場合

setInterval(function() { 
    document.title = 'Pry'; 
}, 1000); 

して、あなたはまた、タイトルが

var title = 'Pry'; 
var count = 0; 
var timer = setInterval(function() { 

    if (document.title !== title) 
     count += 1; 

    document.title = title; 

    // count will be incremented twice 
    // once when this function runs for first time 
    // when title is actually changed 
    if (count >= 2) 
     clearInterval(timer); 

}, 1000); 

を変更されるとあなたが実際にタイトルを変更する代わりの変化に別のルーチンを書いているスクリプトを編集良くなるこのタイマーを停止することができますタイトル。

+1

動作しないと思わないでください。 'document.title === title'をチェックし、それが変更されたと判断した場合よりも、 'Pry'にタイトルを設定しますか?それはまったく変わっていない、それは「Pry」だった。 – skobaljic

+0

私はそれを変更しているスクリプトを見つけることができません。 JavaScriptが長すぎます。 – Karen

+1

@skobaljic私は変更しました。タイトルが実際に変更されたことをよりよく検出するようにしたいと考えています。 –

関連する問題