现在,我正在写
function tabStatusOnChange(tabId, changeInfo)
{
if(changeInfo.status == "complete")
chrome.tabs.executeScript(null, {file:"oneuniverse.js"});
}
chrome.tabs.onUpdated.addListener(tabStatusOnChange);
但它也不适用于ajax页面和gmail。如何写ajax状态完成
答案 0 :(得分:1)
您不能对XHR使用chrome.tabs.onUpdated,因为它只会在更新选项卡时触发。当您发送XHR请求时,选项卡不会更新(这是“AJAX”的全部内容)
知道AJAX调用是否完成的唯一方法是覆盖它。您可以覆盖AJAX请求(使用XmlHTTPRequest),如下所示:
var origXHR= window.XMLHttpRequest;
window.XMLHttpRequest = customImplementation;
XMLHttpRequest可以是同步或异步的,因此您必须同时考虑这两者。当我的意思是customImplementation
时,它意味着你将使用相同的实现,但你会在某些地方添加钩子(例如适配器模式)。
答案 1 :(得分:0)
您无法像在Chrome扩展程序中那样覆盖,因为扩展程序在与页面不同的JavaScript上下文中运行。互操作性的唯一要点是DOM。因此,您需要查找请求完成时触发的DOM事件。但我不认为有一个。