- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我为我的网站制作了一些 javascript 代码,它在 opera 和 chrome 上没有问题,但在 firefox 上没有问题。
这是脚本:
function checkstate(who,row,cell) {
var zwrot="";
var mouseEvent='onmouseover="javascript:bubelon(this.id);" onmouseout="bubeloff();"';
var cellid="";
ajax=new XMLHttpRequest();
ajax.onreadystatechange=function(aEvt) {
if (ajax.readyState===4 && ajax.status===200) {
alert("im here!");
}
};
ajax.open('GET',"oth/work_prac_stan.php?usr="+who,false);
ajax.send();
}
function sprawdzstan() {
var lol="";
var table = document.getElementById("usery");
var re = /^<a\shref\=/g;
for (var i = 1, row; row = table.rows[i]; i ++) {
if (row.cells[0].innerHTML.match(re)) {
checkstate(row.cells[1].innerHTML,row,2);
} else {
checkstate(row.cells[0].innerHTML,row,1);
}
}
}
问题是,firefox 没有运行分配给 onreadystatechange 的功能。我检查了 Firebug ,php 文件的响应是正确的。
问题出在哪里?它适用于 chrome 和 opera,firefox 只是不行,控制台没有错误,什么都没有。
最佳答案
根据 Mozilla's docs ,您不对同步请求使用 onreadystatechange
。这是有道理的,因为在就绪状态为 4(完成)之前请求不会返回,尽管我可能不会那样设计它。
没有立即看到确凿的证据,但是:您的 ajax
变量未在函数内定义,因此您几乎肯定会在 sprawdzstan< 中的循环的每次迭代中覆盖它
。这是否是一个问题 还有待观察,因为您使用的是同步 ajax 调用。在任何情况下,将 var ajax;
添加到 checkstate
以确保您不会成为 Horror of Implicit Globals 的猎物。 .
题外话:如果您可能找到一种方法来重构您的设计以不使用同步 ajax 请求,强烈建议您这样做。同步请求会锁定浏览器的 UI(或多或少的程度取决于浏览器,但很多 - 大多数? - 完全锁定,包括其他不相关的选项卡)。重构和使用异步请求几乎总是可行的。
题外话 2:您没有在代码中使用 mouseEvent
,但如果您使用了,您会希望摆脱那些 javascript:
在 onmouseover
和 onmouseout
属性上添加前缀。这些属性不是 URL,前缀不是(那里)协议(protocol)说明符(它是一个标签,您没有使用)。
关于javascript - Firefox 未启动 onreadystatechange 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4504434/
我的请求有以下代码: var req = new XMLHttpRequest(); req.onreadystatechange = function() { if (req.
请记住,我对 JavaScript 语法非常很陌生,所以请耐心等待。 我试图使用多个onreadystatechange作为 promise 来捕获我从express返回的内容,但每次我这样做时,它们
我有一个问题。我在我用来触发的外部 javascript (ajax) 中有一个删除函数,以便执行我的 PHP 文件中的删除查询。 我想知道的是 onreadystatechange 函数中应该有什么
我希望 AJAX 回调触发 myFucntion 中的 alert() 并显示“它有效”,如何在 ajaxResponse 中引用 myobject 对象? function myobject() {
好的...所以我的代码非常简单。唯一的问题是调用 onreadystatechange 的函数永远不会被执行。我发出警报以显示 readyState 和 xmlhttp 的状态,分别显示为 1 和 0
这里是 Angular 新手。我想知道是否可以使用 $http 服务在任何就绪的状态/状态 更改时调用函数,而不仅仅是在成功/失败。在代码方面,它将是与以下 JS 代码等效的 Angular 代码:
一个多小时以来,我一直在尝试调试我的代码,但没有成功。我意识到ajax的异步调用意味着我必须将回调函数与onreadystatechange事件结合使用。问题是,我在控制台中不断收到“Uncaught
由于某些原因,onreadystatechange 回调函数没有在异步模式下被调用。我在同步模式下测试了帖子并确认帖子本身工作正常(注释掉了我用来在同步模式下检查帖子的测试代码)。该问题同时出现在 s
我有一个包含 的 HTML 页面. 正在根据某些事件进行刷新(我可以看到 的内容正在更改,所以到目前为止一切正常)。 我想做的是添加一个 onreadystatechange到 这样我就可以在获取
我正在尝试执行一些 AJAX,并且需要知道为什么这段代码没有触发完成或错误警报。我在 Mozilla Firefox 20.0.1 请注意 这段代码是更新数据库(我有一个选择语句读取确切的记录来验证它
我在将函数的值返回到变量时遇到一些问题。它显然是“未定义的”。这显然是由于 JavaScript 的异步性造成的。但就我而言,我不知道如何通过“回调”或“ promise ”来规避它。请参阅下面的代码
我正在尝试克服 ajax 请求,但 Chrome 控制台向我显示以下消息:xml_http.onreadystatechange 不是一个函数 这是我的 JS 代码: function ajax_re
背景 我每 5 秒使用 XMLHttpRequest 发出一个请求我想在收到回复时打印我的名字。 为此,我使用 onreadystatechange这允许我在收到答案时定义回调函数。 问题 为了实现这
我有一个名为 urlExists 的函数,我在几个项目中使用它都没有问题。现在我在患者面板中,需要在调用函数 addEventListener 之前检查 js 文件是否存在: function url
xmlhttp.onreadystatechange=function() { 因此这表示 onreadystatechange,调用 function()。我可以将参数放在 function() 中
什么是 JavaScript 类型不匹配错误? 可能的原因是什么? 我无法包含所有代码,但这是出现错误的行。 xmlObject.onreadystatechange = null; 最佳答案 您收到
这个问题在这里已经有了答案: How do I return the response from an asynchronous call? (41 个回答) 关闭 7 年前。 我正在尝试从 onr
为什么这段代码不起作用(调用 handleRequestStateChange 函数时)?: function ajaxRequest(){ var xmlObj = new XMLHttpRequ
我正在尝试让 AJAX 请求生效;具体来说,我不想在控制台中记录每个更改以了解我做对了。代码如下: function loadAJAX() { ajaxRequest = new XMLHttpReq
我有一个执行基本 Ajax 发布的 AMD 模块。它正在工作,它将发布到我的服务器 api,但是 onreadystatechange 事件不会触发。你能看出我做错了什么吗?... define(['
我是一名优秀的程序员,十分优秀!