问题标签 [readystate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
671 浏览

javascript - HTML

我的网页上有单独的<audio><video>元素,我希望它们同时开始播放,同时它们都可以不间断地播放(即,将它们readyState设置为 4)。现在我正在使用以下代码:

这在 Chromium 和 Opera 浏览器中完美运行,但在 Firefox 中几乎总是失败。这样做的原因是无论我等待多长时间<audio>都会卡住。readyState == 3因此它永远不会触发canplaythrough事件(这需要readyState == 4)。

虽然元素几乎立即<video>进入。readyState == 4是 Firefox 的错误还是我做错了什么?

我的 Firefox 版本是 51.0a2。

0 投票
3 回答
1493 浏览

javascript - jQuery获取视频的“readyState”属性

作为标题,我无法获得 DOM 属性,jQuery.attr()但可以通过. 获得属性document.attrbute。如何解决?

0 投票
1 回答
8658 浏览

javascript - What does ‘readystatechange’ event for ‘window’ mean?

0 投票
1 回答
265 浏览

javascript - DOMReady: 'kendo' 未定义

我在生产环境中收到来自 JavaScript 的间歇性错误,并希望了解有关加载过程的更多信息。

错误很简单,可以理解:

“剑道”未定义。

它指出该kendo变量在我尝试使用它时未定义。但是,我将所有的 JavaScript 代码都包装在一个 jQueryready事件中,就像这样......

我的印象是,这样做jQuery(function() { ... });会导致内部代码在 DOM 准备好之后运行,并且只有在所有<script>标签都被解析和处理后才会运行。

不是这样吗?我应该将我的代码添加到loaded事件而不是ready事件中吗?

FWIW,我们正在使用 Cloudflare 处理缩小和缓存,间歇性行为似乎只与 IE 有关。但是,我无法复制该问题,我只是在我们的一个页面无法完成加载时收到通知,并且我看到控制台出现了这个未定义的错误。再次导航到该页面没有问题,所以我有点困惑。有任何想法吗?

此外,我的代码中没有看到任何对 jQuery 或 kendo 库的重复引用。

0 投票
1 回答
160 浏览

javascript - Document.readystate 谎称正在加载谷歌地图画布图像

我正在从 iframe 中打印包含 google maps API v3 地图的页面。我实现了以下代码以确保在打印 iframe 之前页面已完全加载。

}

document.readystate === 'complete'然而,即使 AFTER确实有 500 毫秒的延迟,页面通常也会使用灰色/空白的谷歌地图画布打印,没有图像。

如果我再次点击 window.print() 而不重新加载页面,那么它会按预期打印带有所有地图图像的 iframe。所以文档就绪状态是在说谎。

除了增加延迟甚至更长之外,我还能做些什么来解决这个问题(我不想这样做,因为它会惩罚人们在内容快速加载时等待很长时间)

0 投票
2 回答
1201 浏览

javascript - 为什么 document.body 与我的 readyState 逻辑为空?

我正在尝试尽快添加一个iframe元素document.body

所有 4 种主要浏览器(Chrome、Safari、FF、IE ——各种版本)都出现错误报告,我们看到document.body的是null. 我认为当我的 JS 文件被缓存并快速加载时会发生这种情况。

这是插入的逻辑iframe

我很难在干净的环境中重现这个问题,这让我猜测这在野外是如何发生的。

本来我也试过这个rreadyState逻辑,但是我们看到document.bodyundefined在IE的时候处于loading状态。

我目前的提问方式......

  1. 问题是default这样吗?我应该在那里添加事件侦听器吗?我可以修改案例的顺序,以便事件侦听器是默认的?
  2. body有可能null参加DOMContentLoaded活动吗?
  3. 是否有可能还有其他价值document.readyState正在下降?
0 投票
3 回答
4275 浏览

javascript - XMLHttpRequest onreadystatechange 从未为 readyState 0 触发

我设置了通常的 XMLHttpRequest,到目前为止一切正常,我可以检索数据和 readyState 更改并执行各种操作。

但是没有发生的一件事是 readyState 在达到 0 时会触发 onreadystatechange() 函数。

现在我想知道......为什么?

我查看了XMLHttpRequest MDN 条目,但没有提到为什么当 readyState 达到 0 时不应触发 onreadystatechange。我也没有找到关于该主题的其他信息......

片段:

当 XMLHttpRequest 套接字处理完请求后,XMLHttpRequest 实例将具有值 readyState===0,至少 Firefox 的 JS 控制台告诉我这一点。

发出请求后,JS 控制台正确列出了 readyStates 1-4 的日志消息,但没有列出 readyState 0 的消息,不是在请求之前,也不是在请求之后。

理论上,当readyState从4变回0时,不应该触发onreadystatechange()函数吗?在 macOS 上使用当前 FF 和 Safari 以及在 Win 上使用 IE11 进行了检查,到处都是相同的行为,onreadystatechange() 永远不会为 readyState 0 触发。

XMLHttpRequest 是故意不这样做,还是我做错了什么?感谢任何有用的输入。:)

(请不要“使用 jQuery”评论或类似的评论,谢谢。)

更新

结果表明,在成功或失败的请求完成后,readyState 将永远保持在 4,并在 FF、IE、Safari 中进行了验证。

但是,如果正在进行的请求被中止,readyState 将从 > 0 返回到 0。所以一个 readystatechange 确实发生了,但是 onreadystatechange 没有被触发,在 FF 和 Safari 中验证了这一点。

更新 3

根据XMLHttpRequest 规范,当 XHR 处于 readyState 3(接收)并被中止时,XHR 应该使用 onreadystatechange 事件将 readyState 设置为 4(完成),发出网络错误,然后在没有onreadystatechange 事件的情况下将 readyState 设置为 0(未发送) .

但是当我中止处于 readyState 3(接收)的 XHR 时,它首先会使用 onreadystatechange 事件和 HTTP 状态 200(OK)将 readyState 设置为 4(完成),然后它会触发 onabort 和 onloadend 并将 readyState 重置为 0( unsent) ...但绝不会触发 onerror 事件。

非常混乱。

0 投票
1 回答
530 浏览

c# - 等到页面在 C# 中使用来自 SHDocVw 的 InternetExplorer 对象完全加载?

代码如何使用InternetExplorer来自SHDocVw. 在 C# 中???

非常感谢您

我的代码:

0 投票
1 回答
28 浏览

javascript - Javascript在readyState加载和完成之间插入html

我正在寻找一种尽早将 html(标签)插入到特定位置的网站的方法。插入本身不是问题,我只是在寻找一种无需等待 readyState 完成触发来加快速度的方法。

我知道 GTM(谷歌标签管理器)在加载和完成之间插入标签。它如何以有效的方式做到这一点?

0 投票
0 回答
75 浏览

ajax - 如何检测由于 ajax 请求而加载的页面上的“完成”事件?

我正在使用 ajax(xmlhtthrequest 以“异步”打开)在主页中加载几个带有 innerHTML 的 div,因为每个 div 的 html 是由服务器使用 php 生成的。加载完整页面后,包括 div,我需要在整个页面上执行附加脚本。我不想把这个额外的脚本放在

ajax 请求的块,而是在主页的末尾。这是因为这个附加代码并不特定于 div 中加载的 html。在主页的末尾,我写

但是“完成”事件通常在所有 div 加载之前触发。有没有办法在 xhr.onreadystatechange 函数之外检测所有 ajax 请求的“readyState”?