我正在开发一个 chrome 扩展,我在 onload 处理程序中设置了 window.title 。不过,我正在修改的页面似乎也动态设置了文档标题。有大量的脚本被链接。我有什么办法可以阻止其他人修改document.title
或其任何变体,而不知道修改来自哪里?或者,有没有一种快速的方法可以让我看到变化来自哪里?
问问题
1055 次
3 回答
3
我有同样的问题,一些外部脚本改变了我的页面标题document.title = "..."
我已经为此制定了自己的解决方案:
try {
window.originalTitle = document.title; // save for future
Object.defineProperty(document, 'title', {
get: function() {return originalTitle},
set: function() {}
});
} catch (e) {}
于 2019-06-20T09:04:40.087 回答
1
查看如何监听标题元素更改的答案?. 尤其:
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
这个SO answer提出了一种如何监听文档标题更改的技术。
也许您可以使用该技术创建一个回调,将标题更改回您想要的任何内容,只要其他脚本尝试更改它。
于 2013-08-14T06:19:22.457 回答