这不是重复......这是一个延续
我在从Chrome扩展程序中删除body标记中的属性时遇到问题。我已经阅读了很多相关内容,但我仍然遇到问题。
采取以下身体元素:
<body onbeforeunload="bye()" leftmargin="0" topmargin="0">
我想完全删除onbeforeunload
事件。我可以将我的脚本注入页面,但仍然无法删除该事件;虽然它确实运行。所以问题纯粹是注入脚本删除事件。
这是注入的脚本。
document.write('<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>');
console.log("onload called");
document.removeEventListener(onload);
document.removeEventListener(onmouseover);
document.removeEventListener(onbeforeunload);
var r = document.getElementById("body");
if (r !== null)
console.log("Found Body");
$('body').onload.off();
$('body').onbeforeunload.off();
任何获取该属性的帮助都将不胜感激。
答案 0 :(得分:1)
您正在混合来自content script和网页的JavaScript上下文:它们不同,但共享相同的DOM。
这就是$
未定义的原因,因为它已插入到网页中,但在内容脚本中使用。
如何从body标签中删除属性呢?
document.body.removeAttribute('onbeforeunload');