Событие iframe onload не запускается в Firefox (связано с загрузкой файлов ASP.NET) - PullRequest
1 голос
/ 28 июня 2009

Главная страница:

<iframe src="/files/new" onload="alert('onload');"></iframe>

и внутри iframe, / files / new renders:

<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 сработает, как и ожидалось. Но если я отправляю большой файл, размер которого превышает значение, указанное в maxRequestLength httpRuntime в web.config, событие onload iframe не срабатывает (только в Firefox (я тестировал с v3.0.11). IE и Google Chrome обычно запускают событие onload ).

Я использую ajaxSubmit jQuery для загрузки файлов, а ajaxSubmit внутренне использует iframe и прослушивает событие onload для уведомления об успехе или неудаче. Поэтому, если я загружаю большой файл, в firefox вызывается любой обратный вызов, и у меня нет возможности узнать, успешно он или нет.

Ответы [ 3 ]

1 голос
/ 31 декабря 2009

Если вы хотите, чтобы старые браузеры что-то делали после завершения загрузки документа в iframe, вы можете включить обработчик загрузки внутри этого документа.

Затем документ может ссылаться на содержащий документ с помощью ключевого слова parent.

Это должно решить вашу проблему.

1 голос
/ 29 ноября 2010

Что-то связано:

Не называйте функцию, которую вы вызываете в onload, именем onload.

<body onload="onload();">

Это работает в IE, но приводит к бесконечной рекурсии в FF.

1 голос
/ 09 июля 2009

У меня часто бывают такие проблемы, поэтому я смотрю на кошку по-другому. Вместо использования onload, возможно ли будет включить что-то внутри фрейма для ссылки на внешнюю часть DOM?

Например, не могли бы вы просто установить переменную как часть основного родительского фрейма window.parent.uploadComplete, а затем использовать таймер для просмотра состояния переменной завершения загрузки?

Это не так эффективно, как триггер с нагрузкой, но иногда это жертва кросс-браузерной совместимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...