【问题标题】:ExternalInterface.call causing error in IEExternalInterface.call 在 IE 中导致错误
【发布时间】:2009-05-25 01:10:04
【问题描述】:

我有一个菜单屏幕,由于各种原因,它包含许多按钮作为单独的 Flash 电影。当点击这些电影中的按钮时,它应该调用一个javascript函数来移动到相应的页面。它在 Firefox 中运行良好,但目前在 IE7 中失败。我没有方便的 IE6 来测试。 这是我在 IE 中遇到的错误:

Line:1
Char:25
Error: Expected ';'
Code:0

我无法找到第 1 行的 char 25 的实际含义。我只有在单击按钮时才会收到错误,并且在安装 Visual Web Developer 以尝试进行一些实际调试后,它似乎并没有真正触发被调用的函数,所以看起来错误发生在究竟是什么机制使 ExternalInterface.call 起作用?

Flash 电影上的代码实际上就是:

ExternalInterface.call('gohere',skip_id);

skip_id 作为 flashvar 传递到电影中的地方 - 它似乎得到了一个有意义的值,因为我可以将它打印到 flash 电影中的文本字段。 javascript函数同样复杂:

function gohere(i){
    lo.skipto(i);
}

但正如我所说,如果我在此处设置断点并对其进行调试,它甚至不会出现。如果我在 html 屏幕中放置一个 javascript:gohere('id') 链接并单击它可以正常工作。 我有 ExternalInterface.call 在同一个项目的其他部分工作,并且我一生都看不到它的实施方式有什么不同。

想法?

【问题讨论】:

    标签: javascript flash internet-explorer actionscript externalinterface


    【解决方案1】:

    原来我在对象标签的 ID 中有一个 -,IE 根本不接受它。

    叹息

    【讨论】:

      【解决方案2】:

      我在 IE 中调试这些东西更糟糕,所以对于初学者,我会在我的 gohere 中放置一个“alert()”。然后我会开始在我的javascript中输入回车,看看有错误的行是否移动,然后通过推导找出来。

      顺便说一句,有一个名为 IETester 的软件,它可以显示您的页面在 IE 5.5/6/7/8RC1 中的样子。

      【讨论】:

      • 是的,alert() 永远不会被触发。找到该行有点复杂,因为 js 是 ajaxed 并插入到 html 持有者中。 IE 在最好的情况下似乎无法定位代码。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-14
      • 2011-04-20
      • 2013-02-04
      相关资源
      最近更新 更多