簡體   English   中英

iframe的onload事件未在firefox中觸發(與ASP.NET文件上傳有關)

[英]iframe's onload event not firing in firefox (related to ASP.NET file uploading)

主頁:

<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中會調用任何回調,而我無法知道它是成功還是失敗。

我經常遇到這樣的問題,所以我換種方式給貓皮擦毛。 除了使用onload之外,是否可以在框架內部包含某些內容以引用DOM的外部部分?

例如,您是否可以簡單地將變量設置為主父框架window.parent.uploadComplete,然后使用計時器查看上傳完成變量的狀態?

它不像使用onload觸發那樣有效,但是有時這就是跨瀏覽器兼容性的犧牲。

如果您希望較早的瀏覽器在文檔加載到iframe中后立即執行某些操作,則可以在該文檔中包含onload處理程序。

然后,文檔可以使用“ parent”關鍵字引用包含文檔。

這應該可以解決您的問題。

相關的東西:

不要在onload中調用您要調用的函數“ onload”。

<body onload="onload();">

這在IE中有效,但在FF中導致無限遞歸。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM