У меня есть веб-сайт asp.net, где у меня есть встроенный флеш-объект. У объекта Flash есть некоторые функции, зарегистрированные через ExternalInterface, поэтому он должен быть доступен из JavaScript. И они есть, но только когда я вызываю его, когда сайт полностью загружен и я запускаю некоторые события (щелчок и т. Д.). Но когда я пытаюсь получить доступ к любой из этой функции из блока сценария, у меня появляется ошибка, заключающаяся в том, что я вызываю недостаточную функцию.
Этот скрипт помещен в конец документа, на данный момент объект flashGame не недоопределен, но его функции недоопределены.
<script type="text/javascript">
var flashObj = document.getElementById("flashGame");
// AdLoaded is underfined at this moment.
flashObj.AdLoaded();
// Also tried this, no luck
$(document).ready(function () {
flashObj.AdLoaded();
});
</script>
AdLoaded не определен в обоих случаях. P.S. И если я помещаю точку останова в начале скрипта, кажется, все работает нормально, функция AdLoaded () не недооценена. Что я скучаю? Заранее спасибо.
1 ответ
У вас есть блок ready
, но элемент еще не в теле, поэтому getElementById
, скорее всего, вернет null,
Пытаться:
$(document).ready(function () {
var flashObj = document.getElementById("flashGame");
flashObj.AdLoaded();
});
Обратите внимание, что document.ready не означает, что флеш-память завершила загрузку, просто DOM готова, поэтому вам, возможно, придется даже сделать:
$(window).on("load",function () {
var flashObj = document.getElementById("flashGame");
flashObj.AdLoaded();
});
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Имейте в виду, что JavaScript — это НЕ то же самое, что Java! Включите все ярлыки, относящиеся к вашему вопросу; например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [svelte] и т. д.