我想编写一个注入gmail的撰写页面的脚本。
到目前为止,我已经有了这个网址格式:["*://mail.google.com/*"]
。加载gmail时脚本成功注入,但之后在单击收件箱或撰写链接时不会重新注入。我希望["*://mail.google.com/*compose"]
可以很容易地做到,但没有。
这种模式可能就我所能得到的而言,然后我必须创建一个监听器来检查页面的这一部分何时重新加载?
确定何时加载撰写页面的最简单方法是什么?
答案 0 :(得分:2)
内容脚本仅在真正加载页面时运行
如果要为特定哈希运行代码,请在没有哈希的URL处注入脚本,并使用hashchange
检测更改。
function checkHash() {
if (/^#(compose|drafts)\b/.test(location.hash)) {
// Do whatever you want
}
}
window.addEventListener('hashchange', checkHash);
checkHash();
使用setInterval
连续检查DOM中是否存在所需元素可能更有效,而不是监视位置哈希。当您想要读取或写入特定DOM节点的值时,这尤其有用。