主页:
<iframe src="/files/new" onload="alert('onload');"></iframe>
并在iframe内部,/ files / new渲染:
<form action="/files/create" method="post" enctype="multipart/form-data" >
<input type="file" name="file1" size="28" />
<input type="submit" value="submit" value="Submit" />
</form>
如果我提交文件,iframe的onload事件会按预期触发。 但是,如果我提交的大文件大于web.config中httpRuntime的maxRequestLength中指定的值,则iframe的onload事件不会触发(仅在firefox中(我使用v3.0.11测试过).IE和Google Chrome正常触发onload事件)。
我正在使用jQuery的ajaxSubmit上传文件,而ajaxSubmit在内部使用iframe并监听onload事件以通知成功或失败。因此,如果我上传一个大文件,则在firefox中调用任何回调,我无法知道它是成功还是失败。
答案 0 :(得分:1)
我经常遇到这样的问题,所以我希望用另一种方式给猫换皮。而不是使用onload,是否可以在框架中包含一些东西来引用DOM的外部部分?
例如,您是否可以简单地将变量设置为主父框架window.parent.uploadComplete的一部分,然后使用计时器查看上传完成变量的状态?
它不如onload的触发器有效,但有时这是跨浏览器兼容性的牺牲。
答案 1 :(得分:1)
如果您希望旧版浏览器在文档加载到iframe后执行某些操作,则可以在该文档中包含一个onload处理程序。
然后,文档可以使用“parent”关键字引用包含文档。
这可以解决您的问题。
答案 2 :(得分:1)
相关的事情:
不要给你正在调用的函数onload名称'onload'。
<body onload="onload();">
这适用于IE,但会导致FF无限递归。