2012-08-13 88 views
-1

我對JavaScript一無所知。只是想調整一小塊代碼,但無法在網上找到答案,或者至少有一個我能理解。希望你能幫助我。HTML5&Javascript

這是一個關於HTML5的onMouseover/onClick javascript(播放音頻)事件。腳本的頭部在一個地方說:


<Script> 
............ 
........... 

} 
    else{ 
     return {playclip:function(){throw new Error("Your browser doesn't support HTML5 audio unfortunately")}} 
    } 

換句話說,作爲最好的,我能理解,這意味着如果用戶的瀏覽器不支持HTML5音頻,腳本將返回此錯誤消息/對話框:「不幸的是,您的瀏覽器不支持HTML5音頻」。

但是,我不希望這個錯誤消息/對話框被返回/生成/拋出什麼!相反,我更希望腳本能夠在向任何非HTML5無javascript的普通網頁顯示任何錯誤消息之前自動發送用戶。

我該怎麼辦?

+0

因此,更改'function',並使其執行其他操作。 'return {playclip:function(){alert('hi'); }}' – 2012-08-13 15:24:27

回答

0

最簡單的做法是將位置更改爲另一個網址。

else { 
    window.location = 'http://newnonhtml5webpage/'; 
} 
1

你可以做

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

定向到一個新的網站,而不是立即行的「迴歸......」

+0

感謝您的回答。如果「myhtml.html」和這個文件位於同一個文件夾/目錄中,那麼我可以只寫html文件名,就像我們可以用HTML做的一樣,或者我必須寫完整的URL這裏的「myhtml.html」的? (因爲我沒有舊瀏覽器,所以此時我無法檢查「只有html文件名」選項)。 – Mon 2012-08-13 21:50:53

+0

在我的例子中我使用相對路徑。你也可以使用絕對路徑。 所以直接的答案是肯定的。如果調用文件位於同一個文件夾內,則只需編寫文件名即可。 – Less 2012-08-22 13:37:35

1

你else語句返回一個對象有一個屬性(被稱爲playclip )這是一個引發錯誤的函數。如果您想將用戶重定向到另一個頁面,只需執行重定向而不是拋出錯誤:

else { 
    return { 
     playclip: function() { 
      // it might be nice to tell a user why they're being redirected: 
      alert('You are being redirected to another page because your browser does not support HTML5 audio!'); 
      window.location.href = 'whateverPageYouWant.html'; 
     } 
    }; 
} 
+0

感謝您的回答。如果'whateverPageYouWant.html'與此文件位於同一文件夾/目錄中(使用此JavaScript),那麼我可以只寫html文件名,就像我們可以在HTML中執行的那樣,還是必須編寫完整的URL這裏的'whateverPageYouWant.html'是什麼? (因爲我沒有舊瀏覽器,所以此時我無法檢查「只有html文件名」選項)。 – Mon 2012-08-13 21:48:41

+0

@Mon只是文件名應該足夠了 - 如果您沒有在URL中提供主機,瀏覽器將使用當前主機。 – jbabey 2012-08-14 12:21:48