通过色盒内的AS3外部接口调用javascript
我有一个swf,它在一个彩盒窗口中打开。视频播放完毕后,我对javascript函数进行外部接口调用以关闭colorbox 我正在尝试执行以下AS3代码:通过色盒内的AS3外部接口调用javascript,javascript,jquery,flash,actionscript-3,colorbox,Javascript,Jquery,Flash,Actionscript 3,Colorbox,我有一个swf,它在一个彩盒窗口中打开。视频播放完毕后,我对javascript函数进行外部接口调用以关闭colorbox 我正在尝试执行以下AS3代码: ExternalInterface.call('parent.$.fn.colorbox.close()) 我好像没法让它工作。颜色盒关不上 我也试着这样做,看看我是否只是做了错误的函数调用,但这也不起作用: ExternalInterface.call('alert(“hello world”)) 但是,如果我浏览到swf文件的url,使其
ExternalInterface.call('parent.$.fn.colorbox.close())
我好像没法让它工作。颜色盒关不上
我也试着这样做,看看我是否只是做了错误的函数调用,但这也不起作用:
ExternalInterface.call('alert(“hello world”))
但是,如果我浏览到swf文件的url,使其不会在colorbox中打开,则alert()调用可以正常工作。尝试以下操作:
ExternalInterface.call('parent.$.fn.colorbox.close');
这是:
ExternalInterface.call('alert','hello world');
或者,您可以调用eval
并将JS代码作为字符串传递(这里不需要这个,但在某些情况下它很方便)
@用户362871。也许你的嵌入代码正在拒绝你的swf访问JS。。。你能粘贴嵌入代码吗?我没有嵌入代码。我使用colorbox直接加载swf。我将尝试将其嵌入html页面并使用colorbox调用它。我通过调用包含swf的html文件使其工作。当我在html文件中放置一个名为parent.$.fn.colorbox.close()的javascript函数,并从ExternalInterface命令调用它时,它就工作了。@user362871。很高兴你解决了。一定是某种安全沙盒限制。不要使用eval,它很邪恶,它说了一些关于你的坏话。
ExternalInterface.call('eval','parent.$.fn.colorbox.close()')