2009-01-14 104 views
5

在我的HTML頁面,我需要檢查是否安裝了Adobe Flash播放器。如果沒有,我想自動跳轉到另一個HTML頁面,告訴用戶需要Flash播放器。跳轉到一個新的HTML頁面的JavaScript

我使用JavaScript來檢查Flash播放器是可用的,使用「JavaScript Flash detection library」。

我的HTML頁面的主體看起來是這樣的:

<body> 
    <script type="text/javascript"> 
    if(!FlashDetect.installed) 
    { 
     alert("Flash 9.0.115 is required to enjoy this site."); 
    } 
    </script> 
    ... 
    ... 

檢測工作:我可以看到警報,但我沒有找到一個方法來跳轉到另一個HTML頁面。

任何提示?

編輯:有些東西我沒有提到,它似乎有所作爲:HTML頁面是本地頁面(從CD-ROM運行),我想跳轉到一個HTML頁面位於當前目錄中。

+1

當有人要使用該網站,而不是享受它,會發生什麼,他沒有flash播放器? – bandi 2009-01-14 09:31:25

回答

19
window.location.href = "http://stackoverflow.com"; 

對於本地文件,如果你知道的相對路徑這應該工作:(。在你的情況這工作)

window.location.href = "someOtherFile.html"; 

也許你也能做到這一點絕對使用這樣的:(未測試)

window.location.pathname = "/path/to/another/file.html/"; 

問題是瀏覽器供應商的安全措施。谷歌有一些關於它的good information

+0

+1比document.location安全,雖然我總是忘記自己 – annakata 2009-01-14 09:29:01

4

非常謹慎的即時JavaScript重定向。 Flash檢測腳本可能是錯誤的(*),因此最好允許用戶使用某種手動替代方式自己決定是否使用Flash,或者只使用後備內容。

寫location.href工作,但會「破壞後退按鈕」 - 如果用戶按下後退,你的頁面斯塔 - 重定向他們再次轉發頁面,他們就不可能幸福。 location.replace('...')可以避免這個問題。 (* - 有兩種Flash檢測方法,它們都不可靠。創建一個Flash實例,並用FlashBlock等軟件破解它,或者只是緩慢加載,直接嗅探插件不是標準化的,可能會中斷在更隱蔽的平臺。Adobe的自己在http://www.adobe.com/devnet/flashplayer/articles/future_detection_print.html代碼最終訴諸嗅探UA字符串,唉。)

相關問題