1

我尝试创建一个页面,在其中以全尺寸显示 Flash 元素,但是当我在较小的屏幕上查看该站点时,我想触发回退。

这对我现在不起作用,因为浏览器支持 Flash。

我找不到手动切换回退的方法。

4

2 回答 2

2

无法手动触发回退,但如果不满足某些条件,您可以阻止 SWF 加载。在您的情况下,您说仅当视口满足指定的最小尺寸时才需要嵌入 SWF。

如果您尝试在初始页面加载时加载 SWF,只需执行以下操作:

//Viewport function based on 
//http://andylangton.co.uk/articles/javascript/get-viewport-size-javascript/
function GetViewportDimensions(){

    var de = document.documentElement,
        b = document.getElementsByTagName('body')[0],
        w = window.innerWidth || (de && de.clientWidth) ? de.clientWidth : b.clientWidth,
        h = window.innerHeight || (de && de.clientHeight) ? de.clientHeight : b.clientHeight;

    return { width: w, height: h };

}

swfobject.addDomLoadEvent(function(){

    var actualDimensions = GetViewportDimensions(),
        minimumWidth = 600,
        minimumHeight = 500;

    if(actualDimensions.width >= minimumWidth && actualDimensions.height >= minimumHeight){
        swfobject.embedSWF("mymovie.swf", "flashcontent", "550", "400", "9");
    } else {
        //do nothing, use fallback
    }

});

如果视口足够大,此代码只会尝试嵌入 SWF。如果 Flash 不存在,swfobject.embedSWF则会失败,并且您的后备内容将保留在原处。

于 2012-12-04T21:20:43.420 回答
0

如果仅用于测试目的,您可以评论此行:

swfobject.embedSWF("main.swf?v=1", "flashcontent", "972", "1200", "10.1", "expressInstall.swf");

使用 2 个正斜杠

// swfobject.embedSWF("main.swf?v=1", "flashcontent", "972", "1200", "10.1", "expressInstall.swf");

更新:

if (swfobject.getQueryParamValue("noflash") != "true")
     swfobject.embedSWF("main.swf?v=1", "flashcontent", "972", "1200", "10.1", "expressInstall.swf");

然后您可以使用新的 url 进行测试:

www.yourwebsite.com/?noflash=true

于 2012-12-04T09:16:24.107 回答