JavaScript/Bookmarklets

維基教科書,自由的教學讀本

Bookmarklet是存儲在書籤的URL欄位中的一行腳本。書籤已經存在了很長時間,因此它們可以在較舊的瀏覽器中使用。

JavaScript URI 方案[編輯]

您應該熟悉以httpftp等方案開頭的 URL ,例如http://en.wikibooks.org/。還有用於啟動每個書籤的JavaScript方案。

JavaScript:alert('Hello, World!');

示例使用[編輯]

媒體控制[編輯]

The values in these examples can be adapted as desired. One may replace video with audio where applicable, meaning where an <audio> tag is embedded. 這些示例中的值可以根據需要進行調整。在適用的情況下,video可以替換為audio,意味著一個audio標籤被嵌入。

循環播放視頻
javascript:document.getElementsByTagName("video")[0].loop=1;
javascript:document.getElementsByTagName("video")[0].loop=true; // also works

可以使用0false關閉。

跳到十分鐘(使用乘法)
javascript:document.getElementsByTagName("video")[0].currentTime=60*10;
向前跳一分鐘(六十秒)
javascript:document.getElementsByTagName("video")[0].currentTime+=60;
向後跳半分鐘(使用除法)
javascript:document.getElementsByTagName("video")[0].currentTime-=60/2;
獲取控制台頁面上視頻的持續時間
javascript:document.getElementsByTagName("video")[0].duration
提醒持續時間
javascript:alert('This video is '+document.getElementsByTagName("video")[0].duration+' seconds long.')
提醒播放時間
javascript:alert('The current position of the video is at '+document.getElementsByTagName("video")[0].currentTime+' seconds.')
將音量設置為 50%
javascript:document.getElementsByTagName("video")[0].volume=50/100
靜音
javascript:document.getElementsByTagName("video")[0].muted=1 // "true" works as well

Unmute using 0 or false.

播放速度翻倍
javascript:document.getElementsByTagName("video")[0].playbackRate=2
詢問播放速度
javascript:document.getElementsByTagName("video")[0].playbackRate= parseFloat( prompt("How fast should it play?") );

parseFloat如果對話窗口在沒有用戶輸入的情況下關閉,則必須防止將值設置為零。

以秒為單位詢問播放位置
javascript:document.getElementsByTagName("video")[0].currentTime=parseFloat( prompt("Jump to playback position in seconds:") );
以分鐘為單位詢問播放位置
javascript:document.getElementsByTagName("video")[0].currentTime=60*parseFloat( prompt("Jump to playback position in minutes:") );
以百分比請求播放位置(0 到 100)
javascript:document.getElementsByTagName("video")[0].currentTime=document.getElementsByTagName("video")[0].duration/100*parseFloat( prompt("Jump to playback position in percents:") );

使用多行代碼[編輯]

由於您不能在書籤中使用換行符,因此您必須在每個代碼語句的末尾使用分號。

JavaScript:name=prompt('What is your name?'); alert('Hello, ' + name);

連結中的JavaScript協議[編輯]

JavaScript協議可用於連結。這可能被認為是不好的做法,因為它會阻止禁用 JavaScript 的用戶訪問或混淆。請參閱Best Practices

<a href="JavaScript:document.bgColor='#0000FF'">blue background</a>

示例[編輯]

bookmarklets.com上可以找到大量連結,其中顯示了可以在 JavaScript 中執行的各種功能。