我正在尝试获取当前的浏览器网址。我已经尝试过外部呼叫,但它没有用。并使用loaderInfo.url我收到当前的SWF网址。
答案 0 :(得分:15)
放手一搏:
import flash.external.ExternalInterface;
var url:String = ExternalInterface.call("window.location.href.toString");
if (url) textfield.text = url;
应该这样做。
答案 1 :(得分:2)
有几种方法可以解决这个问题,但是所有这些方法都涉及使用JavaScript直接查询浏览器。
我解决这个问题的首选方法是通过flashVar属性提供URL,直接来自嵌入代码(个人而言,我建议使用SWFObject使这更容易);不要忘记你需要对URL进行编码以避免出现标记问题。
var flashvars = {
browserURL: escape(location.href)
};
swfobject.embedSWF("myContent.swf", "myContent", "300", "120", "9.0.0", "expressInstall.swf", flashvars);
现在,您将能够通过loaderInfo对象访问浏览器URL:
trace(stage.loaderInfo.parameters["browserURL"]);
请注意,这只有在您控制SWF文件的生成HTML时才有效 - 如果用户要抓住SWF并编写自己的嵌入HTML,那么它就不会起作用。
如果你无法控制flash嵌入式HTML,那么你需要让flash在运行时使用ExternalInterface类来查询浏览器。其他人建议使用“window.location.href.toString”但是这在IE6中可能会出现问题,我发现以下所有浏览器都能可靠地工作
const browserURL : String = ExternalInterface.call("eval", "window.location.href");
请注意,为了实现此功能,您需要授予对Flash电影的JavaScript访问权限,再次通过HTML嵌入代码和allowScriptAccess param
完成此操作答案 2 :(得分:2)
var url:String = loaderInfo.loaderURL;
似乎也有效。
答案 3 :(得分:1)
我会尝试将所需信息作为flashvar传递。不是我所知道的最好的开箱即用解决方案,但它会起作用。
答案 4 :(得分:0)
我认为使用外部界面可以使用javascript window.location
答案 5 :(得分:0)
我一直在使用闪光灯,从来没有注意过这个。它仅为安全性提供域名。它也可以通过加载的swfs工作。不确定iframe。
Security.pageDomain