1

ie8 でドキュメントのタイトルが変更されないようにする方法はありますか。URLのハッシュ(www.#hash)をもとに自動で変化しているため

例: 私の役職は次のとおりです。

<head><title>Welcome</title></head>

ハッシュが #691 に変更された場合、タイトルは IE8 で $691 になります。

<head><title>#691</title></head>

よりも優れたソリューション

$(window).load(function(){
    setTimeout(function(){
        window.document.title = "Some title";
    }, 1000);
});
4

3 に答える 3

2

IE9 と IE11 で動作するより良いソリューションを見つけました。最新のブラウザーでは汎用の DOMSubtreeModified イベントを使用できますが、古いブラウザーでは onpropertychange イベントを使用しました。これは、従来の attachEvent IE のみのイベント登録モデルと組み合わせてのみサポートされています。 W3C 標準の「addEventListener」イベント モデル。

IE9 & IE11 でテスト済み

function handleIETitle() {
  var originalTitle = document.title.split('#')[0];

  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)) {
          if (document.title !== originalTitle) {
            document.title = originalTitle;
          }
        }
      }, false);
    } else {
      document.onpropertychange = function () {
        if (window.event.propertyName === 'title') {
          if (document.title !== originalTitle) {
            document.title = originalTitle;
          }
        }
      };
    }
  };
}

于 2015-06-10T07:31:06.877 に答える
1

IE の問題のようです ( swf(flash/flex) が埋め込まれたページに固有)。以下のリンクを確認してください。

ページに '#' を含む URL があり、それに flash/swf が埋め込まれている場合、IE のタイトルは <afterHash> に変更されます。

Heikkiが提供する答え

于 2013-07-04T10:58:42.290 に答える
0
if (browser.ie < 10) {
    document.attachEvent('onpropertychange', function(evt) {
        if (evt.propertyName === 'title' && document.title) {
            setTimeout(function() {
                var b=document.title.indexOf('#');
                if(b!==-1){
                    document.title = document.title.slice(0,b);
                }

            }, 1000);
        }
    });
}
于 2015-08-12T14:26:33.857 に答える