代码之家  ›  专栏  ›  技术社区  ›  Jeffrey Chee

操作脚本调用带有安全异常的javascript

  •  0
  • Jeffrey Chee  · 技术社区  · 15 年前

    我在A域托管了一个SWF,在B域托管了一个HTML

    我的SWF可以通过访问域B的HTML来加载。 然而,SWF得到一个

    SecurityError:错误2060:安全沙盒冲突: 外部接口调用程序 http://domainA.com/TrialApp.swf 无法访问 http://DomainB.com/ .

    AS3如下:

    ExternalInterface.call("javascript:_invite();");
    

    在初始化期间,我还从域B加载了跨域策略文件。

    Security.loadPolicyFile( "http://DomainB/crossdomain.xml" );
    

    如何解决这个问题?

    在我的HTML中,我有

    allowscriptaccess='always'
    

    提前谢谢

    1 回复  |  直到 7 年前
        1
  •  0
  •   Lars Blåsjö    15 年前

    Jacob是对的,在使用externalInterface.call()时不应该包含javascript协议。

    我很难确定它会解决安全异常,但您可以尝试这样做:

    ExternalInterface.call("_invite");
    

    …而不是:

    ExternalInterface.call("javascript:_invite();");
    

    有文件证明的使用方法 ExternalInterface.call() 是ExternalInterface.Call(函数名:string,…争论)。在实践中,您还可以发送一个JavaScript字符串(不带“javascript”),它将被执行,因此externalInterface.call(“_invite();”)也可以工作。

    推荐文章