我想在铬扩展上工作,并试图通过依赖sendMessage来清理我的一些代码。然而,回调函数在页面加载完成之前激活,所以在新选项卡的情况下,没有人接收到,并且在现有选项卡中,正在移动的页面正在接收消息(但这不是我想要的)。我寻找其他人用新标签询问这个问题,并没有一个明确的答案,我见过的最好的建议是创建一个全局变量,并创建一个标签加载的监听器,并将其与这个全局变量进行比较。等待chrome.tabs.update选项卡完成加载
所以问题是,有没有办法在回调函数中等待,直到页面加载,或者我创建一个JS对象数组,包含我等待的选项卡和我想发送的信息到那个标签。
此处参考的是后台JavaScript文件中的相关代码。
chrome.tabs.sendMessage(tab.id, {info: "info"}, function(response)
{
//This line isn't used when I am navigating without changing tabs
chrome.tabs.create({url: response.info.linkUrl}, function(tab1)
{
chrome.tabs.update(tab1.id, {url: response.info.linkUrl}, function(tab2)
{
chrome.tabs.sendMessage(tab2.id, {info: "More Info"});
});
});
});
否则我可以证实,我所有的选项卡中端代码的工作,一旦我的sendMessage被推迟足以让我看到我自己的眼睛。我的代码能够始终如一地通过在远离导航的页面上进行验证,并通过检查document.url进行确认。
奇怪的是,executeScript在新页面上执行了操作,而不是旧页面,并且它适用于新选项卡和当前选项卡。谢谢。 – pafk