Actionscript 3 获取当前浏览器URL-ActionScript 3

Actionscript 3 获取当前浏览器URL-ActionScript 3,actionscript-3,flash,Actionscript 3,Flash,我正在尝试获取当前的浏览器url。我已经试过打外线电话了,但没用。使用loaderInfo.url,我会收到当前的SWF url。我会尝试以flashvar的形式传递所需的信息。这不是我所知道的最好的开箱即用的解决方案,但它会起作用 我认为可以使用外部接口并使用javascript窗口。位置试一试: import flash.external.ExternalInterface; var url:String = ExternalInterface.call("window.location.

我正在尝试获取当前的浏览器url。我已经试过打外线电话了,但没用。使用loaderInfo.url,我会收到当前的SWF url。

我会尝试以flashvar的形式传递所需的信息。这不是我所知道的最好的开箱即用的解决方案,但它会起作用


我认为可以使用外部接口并使用javascript
窗口。位置

试一试:

import flash.external.ExternalInterface;

var url:String = ExternalInterface.call("window.location.href.toString");
if (url) textfield.text = url;

应该可以解决这个问题。

有几种方法可以解决这个问题,但是所有这些方法都涉及使用JavaScript直接查询浏览器

我解决这个问题的首选方法是通过flashVar属性直接从嵌入代码中提供URL(我个人建议使用它来简化);不要忘记,您需要对其进行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");
请注意,为了使其正常工作,您需要授予JavaScript对Flash电影的访问权限,这也是通过HTML嵌入代码和


似乎也能用。

我已经用flash很久了,从来没有注意到这个。它只是为了安全而提供了域。它也适用于加载的主权财富基金。不太清楚iframes

Security.pageDomain

这种技术唯一的问题是Flash会将一些URL分解成单独的变量。这发生在GET URL上,即:**.com?one=1&two=2。所以记住这一点@TylerEgeto您可以通过使用HTML特殊字符对URL进行编码来解决这个问题。有趣的是,您可以在actionscript中编写javascript,而不需要HTML。toString做什么?这是Flash添加的功能吗?
Security.pageDomain