我有一个asp.net网站,我在其中嵌入了flash对象。 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>
AdLoadedis在两种情况下均未定义。 附: 如果我在脚本的开头放置一个断点,那么一切正常,函数AdLoaded()没有欠定义。 我想念的是什么? 预先感谢。
答案 0 :(得分:1)
你有一个ready
块,但该元素尚未出现在正文中,因此getElementById
可能会返回null,
尝试:
$(document).ready(function () {
var flashObj = document.getElementById("flashGame");
flashObj.AdLoaded();
});
请注意,该文档.ready并不表示闪存已完成加载,只是说DOM已准备就绪,因此您可能不得不这样做:
$(window).on("load",function () {
var flashObj = document.getElementById("flashGame");
flashObj.AdLoaded();
});