2014-10-03 99 views
0

奇怪的問題,我有一個Chrome擴展,它重命名文檔標題。但它不適用於生活更新標題的網站,如Facebook,AngularJS SPA ...當標題被另一個腳本更改時更改文檔標題

因此,我需要檢測到此更改以覆蓋它。如你期望它做一個無限循環的問題...

var target = document.querySelector('head > title'); 

var observer = new window.MutationObserver(function (mutations) { 
    mutations.forEach(function (mutation) { 
     console.log(mutation.target.textContent); 

     // here change the title with a new value 
     document.title = 'something'; 
    }); 
}); 

observer.observe(target, { 
    subtree: true, 
    characterData: true, 
    childList: true 
}); 

然後,我怎麼會告訴我的事件「做什麼,如果我是誰解僱你的人」?

一個糟糕的方式是更新每X秒的稱號......

回答

1

添加你自己的財產來標記,當您更改標題:

if (typeof(document.titleChanged) == "undefined") { 
    console.log(mutation.target.textContent); 

    // here change the title with a new value 
    document.titleChanged = true; 
    document.title = 'something'; 
} else { 
    delete document.titleChanged; 
}