gpt4 book ai didi

javascript - Tab ReadyState 在第一个服务器响应之前返回 'complete'

转载 作者:行者123 更新时间:2023-11-28 07:25:42 26 4
gpt4 key购买 nike

我有一个通过按钮激活的附加组件。代码如下:

function handleClick(state) {
activeTab = tabs.activeTab;
console.log('readystate: ' + activeTab.readyState);
if(activeTab.readyState != 'complete')
{
activeTab.on('load', function(){
activeTab.removeListener(this);
start();
});
}
else
start();
}

但是,不知何故,每当我向选项卡询问其当前的就绪状态时,上面的代码总是返回“完整”。我绝对确定页面仍在加载,微调器仍在运行,并且我实际上使用 XDebug 启用了 PHP 断点,以确保我的页面永远不会完成加载,直到我想要它完成为止。根据Mozilla tabs docs就绪状态应该是“正在加载”,因为 PHP 还没有完成,所以服务器没有发回任何 HTML,所以甚至没有 DOM。

更新:到目前为止,我发现就绪状态会返回“完成”,直到收到第一个服务器响应为止。一旦初始服务器响应返回浏览器,就绪状态就会更改为“正在加载”。不知道如何从那里继续。

最佳答案

而不是检查readyState属性检查进度属性,我怀疑在readyState完成之后在DOMContentReady之前触发,所以完成后你可能必须为DOMContentReadyload添加一个事件监听器

var tab = gBrowser.loadOneTab('data:text/html,<div class="profilist-icon-build-1">backround of this span is of icon on desktop</div><input type="button" value="applyCss"><input type="button" value="removeCss"> Change File on Desktop to: <input type="button" value="Release Img"><input type="button" value="Beta Img"><input type="button" value="Aurora Img"><input type="button" value="Nightly Img">', {inBackground:false});
//start - listen for loadOneTab to finish loading per https://gist.github.com/Noitidart/0f076070bc77abd5e406
var mobs = new window.MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.attributeName == 'progress' && tab.getAttribute('progress') == '') {
//alert('tab done loading');
init();
mobs.disconnect();
}

});
});
mobs.observe(tab, {attributes: true});
//end - listen for loadOneTab to finish loading per https://gist.github.com/Noitidart/0f076070bc77abd5e406
function init() {
//run on load of the loadOneTab
var win = tab.linkedBrowser.contentWindow;
var doc = win.document;

var btns = doc.querySelectorAll('input[type=button]');
Array.prototype.forEach.call(btns, function(b) {
b.addEventListener('click', handleBtnClick, false);
});

}

关于javascript - Tab ReadyState 在第一个服务器响应之前返回 'complete',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29681489/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com