javascript - 是否可以在 Flash 横幅中运行 html <script> ?

标签 javascript html actionscript flash

我想直接“从 flash (swf) 横幅”运行一些 javascript 代码。

这可能吗?我怎样才能做到这一点?

最佳答案

为了能够使用 ActionScript 在 DOM 中注入(inject) JS 脚本,然后通过注入(inject)的函数进行通信,您可以执行以下操作:

1)导入外部类。

import flash.external.ExternalInterface;

2)用所有的JS函数声明一个常量变量:

private const script_js :XML =
<script>
<![CDATA[
function() {
  AJXFNC = {
    ajaxFunction:function(_url){
      var ajaxRequest;
      try{
        // Opera 8.0+, Firefox, Safari, Chrome
        ajaxRequest = new XMLHttpRequest();
        ajaxRequest.open("GET", _url, true);
        ajaxRequest.send(null);
      } catch (e){
        // Internet Explorer Browsers
        try{
          ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
          ajaxRequest.open("GET", _url, true);
          ajaxRequest.send();
        } catch (e) {
          try{
            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            ajaxRequest.open("GET", _url, true);
            ajaxRequest.send();
          } catch (e){
            // Something went wrong
            return false;
          }
        }
      }
    }
  }
}
]]>
</script>;

3) 将 JS 注入(inject) DOM:

try {
  if( ExternalInterface.available )ExternalInterface.call( script_js );
} catch( error:Error ) {
  trace("ExternalInterface is not available");
}

4)调用函数:

ExternalInterface.call( "AJXFNC.ajaxFunction", "http://www.google.com" );

我已将该技术粘贴到此答案中,因为我通常不相信博客的正常运行时间,但所有权利均归 Adi Feiwel 所有,用于撰写此内容:http://todepoint.com/blog/2011/08/01/injecting-and-calling-js-functions-from-within-flash-using-external/

关于javascript - 是否可以在 Flash 横幅中运行 html &lt;script&gt; ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28075038/

相关文章:

apache-flex - Flex,如何获得日期的一年中的一周?

flash - 开源 ActionScript/Flash 音频编辑器

html - Bootstrap : CSS - height of list-group-item

javascript - 检查 Jade mixin 中的参数

javascript - 使用 chart.js 的实时图表

javascript - jQuery 将 li 附加到 ul

javascript - 如何让 td 点击有 tr

javascript - 如何让背景可点击?

javascript - JavaScript 可以向 Flash 发送消息吗?

javascript - 如何使用 anchor 标记将表单值传递给操作?