我试图让当前的URL在Flash播放器上。 .swf文件的不是网址,但该浏览器所指向的URL。 到目前为止我用:
var st:String = ExternalInterface.call("window.location.href");
不幸的是,这并不在IE浏览器。 从我的研究,我可以看到,它不会与IE浏览器两种方式。
我发现在互联网的唯一的另一件事是把标签上的“身份证”的标签。
所以,我试图找出是否和/或如何,我可以:
不知怎的,让使用ExternalInterface在IE和其他浏览器返回到我当前的URL调用。
要么
拍一个id =“PA”的标签属性,并有AS3阅读标签,并把它作为一个字符串,而无需使用JavaScript
我的限制是,我可以在标签只会增加HTML,不能添加任何JavaScript函数。 这必须在AS3严格完成。
无论哪种方式,我需要知道我是什么网址上。 任何帮助是极大的赞赏。
您需要以使其工作在IE几件事情。 首先,动作脚本:
var domain:String = ExternalInterface.call('function () { return window.location.href; }');
其次,你需要在有效的classid和id atributes <object>
标签:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="myplayer_123123" ...>
如果你不把这些属性,ExternalInterface.call总是返回IE6 / 7/8空,但预期在Firefox的作品。
第三,你需要帕拉姆的allowScriptAccess设置为“始终”,为了能够使用的ExternalInterface的。
<param name='allowScriptAccess' value='always'/>
..
<embed allowscriptaccess='always' ...>
.....
只是一个建议:
这可能是因为IE浏览器,出于某种原因,决定window.location.href可作为一个功能 。 这是愚蠢的,但毕竟是微软为您服务。
您是否尝试过ExternalInterface.call( “字符串”, “window.location.href”)? 这将是我的下一个猜测。
ExternalInterface.call('window.location.href.toString');
你有没有想过实现你想要的东西没有外部呼叫。
var domain:String = loaderInfo.loaderURL;
trace(domain.substr(0, domain.indexOf("/", 8))); //Searches for first instance of "/" after the 8th character.
上面,我们使用的indexOf使从完整路径SWF中的子串描绘出基本域。 我们搜索“/”第八字符后返回字符串的结束点的第一个实例。 我们在8个字符去的原因是为了允许HTTP://和https://; 我们需要它不是第一次看到那些“/”的。 我测试了这一点,它工作很大。
没有什么错ExternalInterface的电话,但我倾向于拯救他们需要时。
文章来源: Getting current URL in Flash from JavaScript using ExternalInterface and IE