[英]How can I get a JavaScript VAR with ExternalInterface?
我试图在我的ActionScript(2.0)中使用ExternalInterface.call函数来获取在包装文档中设置的javascript var值。 以下内容似乎可以在FireFox和Chrome中使用,但是自然不能在IE(8)中使用。 谁能建议另一种方法来获取存储在此变量中的值? 谢谢!
var linkPath = ExternalInterface.call("function(){return window.customLinkLocation;}", null);
JavaScript的:
<head>
<script type="text/javascript">
var customLinkLocation = "http://localhost/file.xml";
</script>
</head>
难道是我嵌入瑞士法郎的方式吗?
<body>
<object width="550" height="400" id="mySwf">
<param name="movie" value="mySwf.swf">
<embed src="mySwf.swf" width="550" height="400">
</embed>
</object>
ExternalInterface.call("window.customLinkLocation.toString");
您要嵌入提供ID的swf吗?
根据我对文档的理解以及一些(但不是太多)的先前经验:您需要通过提供函数名称来调用该函数。 您无法从ActionScript执行自定义代码。 在这种情况下,您需要使用JavaScript创建一个返回所需值的函数。
function getCustomLinkLocation(){
return customLinkLocation;
}
并打电话
ExternalInterface.call("getCustomLinkLocation");
我不知道为什么Firefox和Chrome允许您调用匿名函数,但是ExternalInterface参考没有对此进行任何说明。
在ActionScript中,您可以在HTML页面上执行以下操作:
- 调用任何JavaScript函数。
- 传递任意数量的参数和名称。
- 传递各种数据类型(布尔,数字,字符串等)。
- 从JavaScript函数接收返回值。
得到它了。 问题是IE要求您在'object'元素上使用classid属性。
<object width="550" height="400" id="mySwf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">
<param name="movie" value="mySwf.swf">
<embed src="mySwf.swf" width="550" height="400">
</embed>
</object>
您也可以这样做:
ExternalInterface.call("eval","getVar=function(obj){return obj}");
var yourVar:String = ExternalInterface.call("eval","getVar(JSvar)");
还要确保在嵌入代码中将allowscriptaccess设置为“ always”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.