【问题标题】:Flash object function is undefined in my JavaScript我的 JavaScript 中未定义 Flash 对象函数
【发布时间】:2013-05-23 10:04:49
【问题描述】:

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

【问题讨论】:

    标签: javascript function actionscript undefined externalinterface


    【解决方案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();
    });  
    

    【讨论】:

    • 确实,我知道问题出在哪里,所以当 DOM 中的 flash 对象准备好但它的外部接口尚未初始化时,我得到一个未定义的值。谢谢本杰明!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-07
    • 2018-08-06
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    相关资源
    最近更新 更多