我有一个非常令人作呕的问题。 “恶心”,因为我没有完全控制整个网页,因此不得不破解我的成功之路。
我有自己的脚本,它被加载到网页中,还有一个div
容器,用于显示页面的导航。我想添加一个指向该容器的链接,该容器应该只包含该单个链接。
还有第三方脚本,它还添加了指向该容器的链接。它在AJAX回调函数中执行此操作
1。在文档完全加载后删除所有链接
这是不可能的,因为第三方脚本通过AJAX回调加载内容,因此当页面完全加载时,尚未呈现不需要的链接。
2。重命名div
容器
将我的链接添加到容器后,我完全剥离了容器,删除了类名,ID等。但第三方脚本仍然找到了容器。
第3。将DOMNodeInserted
事件附加到容器
在我称之为浏览器的任何内容中都能很好用。但在IE中失败了。 IE是该页面用户使用的主要浏览器。
我还能尝试什么?
答案 0 :(得分:1)
如果第三方脚本使用jQuery,那么您可以尝试ajaxComplete()。
答案 1 :(得分:0)
您可以覆盖/包装其他脚本用于添加元素的DOM方法,例如appendChild()。像这样的东西(伪代码)
var originalAppend = document.appendChild;
document.appendChild = function () {
if condition {
originalAppend.apply(document, arguments);
}
}
答案 2 :(得分:0)
您可以侦听DOMSubtreeModified事件,并恢复原始div状态。
var originalChildren = $('#content').children();
var setOriginal = function(e) {
$('#content').off('DOMSubtreeModified');
$('#content').empty().append(originalChildren);
$('#content').on('DOMSubtreeModified', setOriginal);
};
$('#content').on('DOMSubtreeModified', setOriginal);