0

我有一个asp.net 网站,其中嵌入了一个flash 对象。Flash 对象有一些通过 ExternalInterface 注册的功能,因此它应该可以从 JavaScript 访问。它们是,但只有当我在站点完全加载时调用它并且我触发了一些事件(点击等)但是当我尝试从脚本块访问任何这个函数时,我有一个错误,我调用了一个欠精细的函数。

这个脚本放在文件的最后,此时flashGame对象没有被underfined,但是他的函数被underfined。

<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 在这两种情况下都不足。PS 如果我在脚本的开头放置一个断点,那么似乎一切正常,函数 AdLoaded() 没有不足。我想念什么?预先感谢。

4

1 回答 1

1

您有一个ready块,但该元素尚未在正文中,因此getElementById可能返回 null,

尝试:

$(document).ready(function () {
    var flashObj = document.getElementById("flashGame");  
    flashObj.AdLoaded();
});  

请注意, document.ready 并不表示 flash 已完成加载,只是表明 DOM 已准备好,因此您甚至可能必须这样做:

$(window).on("load",function () {
    var flashObj = document.getElementById("flashGame");
    flashObj.AdLoaded();
});  
于 2013-05-23T10:07:23.240 回答