有一个类似的帖子Retrieving HTTP status code from loaded iframe with Javascript,但解决方案要求服务器端返回调用iframe中的函数的javascript。相反,我只想检查iframe的HTTP状态代码,而不必调用iframe本身的函数,因为我的应用程序要么通过HTML返回完整站点,要么将单个对象作为JSON返回。基本上我一直在尝试实现一个回调方法,它返回成功|失败,取决于HTTP状态代码。
目前我有uploadFrame.onLoad = function() { ... so far pretty empty ... }
,我不确定在查找HTTP状态代码时要检查什么。到目前为止,我主要依靠jQuery的$.ajax()
来处理成功,但希望进一步了解XHR调用和iframe使用背后的机制。提前谢谢。
更新
我使用jQuery提出的解决方案
form.submit(function() {
uploadFrame.load(function() {
//using eval because the return data is JSON
eval( '(' + uploadFrame[0].contentDocument.body.children[0].innerHTML + ')' );
//code goes here
});
});
答案 0 :(得分:1)
我认为最好的解决方案是将<script>
标记注入您的iframe <head>
并在其中插入“检测”javascript代码。
类似的东西:
$('#iframeHolderDivId').html($.get('myPage.php'));
$('#iframeHolderDivId iframe head').delay(1000).append($('<script/>').text('your js function to detect load status'));
也许这不是最好的解决方案,但我认为它有效