我正在使用jQuery ajax事件'加载':
<iframe id="my_iframe" src="http://somewhere"></iframe>
$(function() {
$('#my_frame').load(function(statusCode) {
// The content loaded here maybe 404/500 or other.
if(statusCode == 400) {
// do something.
} else {
// do something else.
}
});
});
我想在我的加载事件回调中获取状态代码。也许得到jqXHR
对象来实现?
这可能吗?
更多,我可以手动更改iframe的src属性,这也会触发load
事件,似乎这不是ajax调用。
答案 0 :(得分:2)
首先,使用 iframe 通常不是最佳做法。您应该只需使用<div>
元素即可完成所有要求。
<强> HTML:强>
<div id="dynamicPage">
Loading...
</div>
<强> JavaScript的:强>
$("#dynamicPage").load(
"http://somewhere",
function(response, status, xhr) {
if (status == "success") {
// SUCCESSFUL request //
} else if (status == "error" || status == "timeout") {
// ERROR and TIMEOUT request //
var msg = "Sorry! An error has occurred. Please try again later";
$("#dynamicPage").html(msg);
} else if (status == "notmodified") {
// NOT MODIFIED request (likely cached) //
} else if (status == "abort") {
// ABORTED request //
}
});
仔细阅读其他一些关于这个问题的建议。另一篇文章甚至没有使用jQuery.load()
并且误导了#34; success:
&#34; as&#34; sucess.
&#34;
作为奖励款待(如果您可能感兴趣),您可以轻松调整上面的代码以使用加载动画。
答案 1 :(得分:0)
我会说你正在寻找这样的东西:
$.get({
'url': 'your-url',
sucess: function(response, status, xhr) {
//do something
//Change the iframe content by src while having xhr availible
$('#my_frame').attr('src', 'new-url');
//Change the iframe content by appending your own HTML while having xhr availible
$('#my_frame').contents().append('<div>New HTML</div>');
},
error: function (response, status, xhr) {
//do something
}
});