РЕДАКТИРОВАТЬ : поскольку эта проблема теперь "решена" до точки работы, я хочу получить информацию о том, почему. Для исправления см. Мой комментарий ниже.
У меня есть веб-приложение, которое многократно загружает файлы wav динамически (после тайм-аута или в соответствии с инструкциями пользователя) в iframe для запуска воспроизведения по умолчанию аудиоплеером. Приложение предназначено только для FF 2 или 3. Чтобы определить, когда файл загружен полностью, я надеюсь использовать обработчик window.onload для iframe. На основании ответа на stackoverflow.com Я создаю новый iframe каждый раз. Пока firebug включен в браузере с помощью приложения, все работает отлично. Без firebug, нагрузка никогда не срабатывает. Версия firebug - 1.3.1, в то время как я тестировал Firefox 2.0.0.19 и 3.0.7. Любые идеи, как я могу получить нагрузку от iframe, чтобы надежно активировать, когда файл WAV загружен? Или есть другой способ сообщить о завершении загрузки? Вот соответствующий код:
HTML (единственный скрытый атрибут: display: none;):
<div id="audioContainer" class="hidden">
</div>
JavaScript (также может использовать jQuery, но innerHTML быстрее, чем html () из того, что я прочитал):
waitingForFile = true; // (declared at the beginning of closure)
$("#loading").removeClass("hidden");
var content = "<iframe id='audioPlayer' name='audioPlayer' src='" +
/path/to/file.wav + "' onload='notifyLoaded()'></iframe>";
document.getElementById("audioContainer").innerHTML = content;
И содержание notifyLoaded:
function notifyLoaded() {
waitingForFile = false; // (declared at beginning of the closure)
$("#loading").addClass("hidden");
}
Я также пытался создать iframe с помощью document.createElement, но обнаружил то же поведение. Onload срабатывает каждый раз с включенным firebug и никогда без него.
EDIT:
Исправлена информация о том, как объявляется iframe, и добавлен код функции обратного вызова. Нет, никаких вызовов console.log здесь нет.