【发布时间】:2011-10-15 11:40:35
【问题描述】:
我有一个页面,其中有一个事件处理程序附加到onclick 事件。当事件触发时,它将文本框的内容传递给GET 请求。因为 url 不在同一个域中,所以我创建了一个脚本标记并将 url 附加到它的源,就像这样
elem.onclick=fire;
function fire()
{
var text=document.getElementById('text').value;
var script=document.createElement("script");
script.className="temp";
script.src="some url"+"?param="+text;
document.body.appendChild(script);
}
现在,如果该事件被触发并且不止一次我想取消所有先前的 GET 请求(因为他们可能仍在接收响应)并使用最新文本发出 GET 请求。但为此我需要取消以前的请求。
我试过了
document.body.removeChild(script);
script.src=null;
但这在Firefox 中不起作用(我正在使用Firefox 5)虽然这在Google Chrome 中起作用。有谁知道这些请求是否可以在 Firefox 中取消,如果可以,那么怎么样?
更新
正如 Alfred 所建议的,我使用 window.stop 取消请求,但没有取消请求,而是将其挂断。这意味着当我查看 firebug 时,它看起来好像正在发出请求但没有响应。
【问题讨论】:
-
你会考虑使用像jQuery这样的库吗?
-
@Matt Ball 我当然会。但你也可以建议普通的 javascript bcoz 我想了解它是如何完成的吗?
-
我在stackoveflow.com上进行了搜索,找到了[以下答案][1] [1]:stackoverflow.com/questions/117551/…
-
@Alfred 嘿,非常感谢,但你知道,当我在 firefug 的网络面板中检查时,请求似乎已挂起,实际上并没有取消,我也无法提出任何其他请求
-
@Alfred 我可以取消特定的挂断请求吗?
标签: javascript events firefox dom request-cancelling