大家都知道,as和js相互调用可以通过ExternalInterface.callExternalInterface.addCallback来进行。

比较好的做法是使用之前通过ExternalInterface.available来检测一下是否可用。

然而被坑了的是,这个ExternalInterface.available并不检测安全限制,也就是即使ExternalInterface.available=true,还是可能报错。

为了防止报错阻断程序正常运行,还需要再包一层try catch,如下所示:

            if (ExternalInterface.available)
{
try
{
ExternalInterface.addCallback(name,func);
}
catch(e:Error)
{
Log.error("[JavascriptAPI] Security Error ",e.getStackTrace());
}
}

感觉好坑啊-,-

另外关于js访问权限是通过allowscriptaccess属性来设置,一般同一安全域下使用“sameDomain”即可,跨域则改为“always”。

关于action script与js相互调用的Security Error问题的更多相关文章

  1. CefSharp 与 js 相互调用及注意事项

    CefSharp 与 js 相互调用 一. CefSharp调用 js CefSharp.WinForms.ChromiumWebBrowser wb; ... 方式1. ExecuteScriptA ...

  2. WebBrowser(IE) 与 JS 相互调用

    在开发中我们经常将WebBrowser控件嵌入Winform 程序来浏览网页,既然是网页那么少不了JS.下面就让我们来说说他们两之间的相互调用. 在C#封装的浏览器内核中,Chromium 内核封装有 ...

  3. WebView使用详解(一)——Native与JS相互调用(附JadX反编译)

    念念不忘,必有回响,永远坚持你所坚持的! 一直在用WebView,还没有系统的总结过它的用法,下面就系统的总结下,分享给大家 一.基本用法 1.加载在线URL void loadUrl(String ...

  4. flex与js相互调用

    1.flex调用js方法 调用方法例如:ExternalInterface.call("UploadComplete",oldName,uidName,_dir+"/&q ...

  5. Android js相互调用

    一.webview相当于android中的浏览器,基于webkit开发,可以浏览网页文件,支持css javas cript 以及html webview.getSettings().setJavaS ...

  6. 【转】CefSharp 与 js 相互调用

    转自CSDN博客博主ghui,虽然博主说要经过他同意才能转,我只是做笔记用,没做他用,所以请博主理解,在此感谢博主! 一. CefSharp调用 js CefSharp.WinForms.Chromi ...

  7. CefSharp 与 js 相互调用

    https://blog.csdn.net/gong_hui2000/article/details/48155547

  8. js方法调用

    <!DOCTYPE html> <html> <head> <title>测试</title> </head> <body ...

  9. WebView中Js与Android本地函数的相互调用

    介绍 随着Html5的普及,html在表现力上不一定比原生应用差,并且有很强的扩展兼容性,所以越来越多的应用是采用Html与Android原生混合开发模式实现. 既然要实现混合开发,那么Js与Andr ...

随机推荐

  1. Bestcoder Round# 80

    [1003 Sequence] 指数循环节,注意a mod p = 0的情况.此时你的循环节如果返回0,这时你会输出1,而实际上应该是0 #include <algorithm> #inc ...

  2. [BZOJ 3759]Hungergame

    Nim游戏获胜的条件是所有石子的异或和为0 如果先手要获胜,那么一定是打开了一个异或和为0的极大子集 什么是极大子集呢? 就是无论后手打开任何子集的箱子,都不能再使此时打开的箱子异或和为0. 容易证明 ...

  3. python的几个常用内置函数

    dir()查看属性(函数和数据对象) help()查看具体的帮助文档 id() 用来查看数据对象的地址 split 分隔(str ---> list): >>> s=" ...

  4. Linux /etc/passwd 和 /etc/group 文件格式

    passwd: /etc/passwd 文件结构 2011-04-29 16:32:54| 分类: ubuntu技巧 | 标签:passwd linux ubuntu fadero centos./e ...

  5. Scrum会议6(Beta版本)

    组名:天天向上 组长:王森 组员:张政.张金生.林莉.胡丽娜 代码地址:HTTPS:https://git.coding.net/jx8zjs/llk.git SSH:git@git.coding.n ...

  6. Codeforeces 707B Bakery(BFS)

    B. Bakery time limit per test 2 seconds memory limit per test 256 megabytes input standard input out ...

  7. Java学习记录-注解

    注解 一.org.springframework.web.bind.annotation ControllerAdviceCookieValue : 可以把Request header中关于cooki ...

  8. Yii源码阅读笔记(四)

    所有控制器action的基类yii\base\Action.php namespace yii\base;//定义的命名空间 use Yii //使用的命名空间 class Action extend ...

  9. var wi = 0; wi < arr.length; wi++

    思维 <?php$w = 123;$wb = $w;$w = 456;echo $wb;?><script type="text/javascript">  ...

  10. toast 防止一直不停弹出,累积显示

    private Toast mToast = null; public void showTextToast(String msg) { if (mToast == null) { mToast = ...