我想制作一个小扩展,将简单的html注入视频下的YouTube页面。如果我简单地访问YouTube网址,它工作正常。但是,如果我从youtube优惠中选择视频,那么我的html代码会被注入两次,但会被删除。我可以看到它几乎立即出现然后消失。Chrome扩展程序 - 页面更新两次,然后在YouTube上删除
我的代码是:
background.js
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
if (changeInfo.status == 'complete' && tab.status == 'complete' && tab.url != undefined) {
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {method: "reDraw"}, function(response) {
console.log("Injection ready!");
});
});
}
});
content.js
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.method == "reDraw") {
$.get(chrome.extension.getURL('/mytest.html'), function(data) {
$(data).insertAfter('#placeholder-player');
});
}
}
);
该解决方案是工作在大多数情况下细,但我意识到,一个受欢迎的Chrome扩展的一个防止这种事件,火灾等我的分机不能正常工作。 – Vmxes
@Vmxes,更多详情? –
您的解决方案工作正常,直到我安装了“Magic Actions for YouTube 6.9.0.0”。如果启用了此扩展,那么onHistoryStateUpdated事件未被触发或未访问我的扩展侦听器。 – Vmxes