当前位置:  开发笔记 > 编程语言 > 正文

从Actionscript中检测Javascript的可用性?

如何解决《从Actionscript中检测Javascript的可用性?》经验,为你挑选了1个好方法。

我想从我的Flash项目中打开外部URL.我通常使用这样的东西:

getURL("javascript:newwin=window.open('http://someurl.com','','');");

但是,如果Javascript不可用(如果SWF未嵌入HTML中),那么这将失败.如何检测Javascript是否可用?如果它不可用,我可能只是使用getURL并给它直接的URL,虽然我只想这样做,如果使用Javascript方法是不可能的.谢谢!



1> Rex M..:

要完成您所描述的内容,最好的方法是让Flash调用名为"pingJavaScript"的JavaScript函数.如果JavaScript正在运行,那么该JavaScript函数将调用名为"receiveJSNotification"的Flash影片上的函数.所以在你的Flash电影中,如果调用该方法,你就知道JS正在运行.

要在Flash电影和JavaScript之间实现强大的通信,请将其包含在电影第一帧的Actionscript顶部:

import flash.external.ExternalInterface;
import flash.events.Event;

添加一个函数,从JavaScript接收"是的,我还活着":

var js_available = false;

function receiveJSNotification(str:String):void {
 _root.js_available = true;
}

ExternalInterface.addCallback("notifyFlash", receiveJSNotification);
ExternalInterface.call("pingJavaScript", null);

在JavaScript中:

function pingJavaScript()
{
    var movie = getFlash();
    movie.notifyFlash();
}

function getFlash()
{
    var movie = null;
    if (navigator.appName.indexOf('Microsoft') != -1) {
        movie = window['flashmovie'];
    } else {
        movie = document['flashmovie'];
    }
    return movie;
}

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有