2012-12-04 44 views
1

我尝试创建一个页面,它在全尺寸上显示Flash元素,但是当我在较小的屏幕上查看网站时,我想要触发回退。手动切换SWF对象回退=

这现在不适用于我,因为浏览器支持Flash。

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

回答

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将会失败,并且您的备用内容将保留原位。

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

+0

我在想活的网站。如果该网站在小屏幕上查看,但浏览器支持Flash,我宁愿显示图像而不是Flash。 – andeersg

+0

我已更新帖子,希望有所帮助 –