HTML5中原生的右鍵菜單創(chuàng)建方法

即使是JavaScript被禁止,這些右鍵菜單仍然能正常顯示。所以,如果你想尊重用戶的選擇,最好的方法是用JavaScript來創(chuàng)建這些菜單元素,注入到DOM元素里,這樣,當(dāng)JavaScript被禁止時,這些右鍵菜單也不顯示了。
HTML5規(guī)范里有一個被大家忽略里的好東西,那就是右鍵菜單。HTML5里的右鍵菜單規(guī)范顯示,程序員可以通過創(chuàng)建簡單的HTML5menu和menuitem標(biāo)記來生成右鍵菜單。菜單只在指定區(qū)域的右鍵菜單內(nèi)顯示。所以,你不需要再通過創(chuàng)建瀏覽器插件來實(shí)現(xiàn)這種效果。下面就讓我來展示如何用基本的HTML標(biāo)記來創(chuàng)建個性化的右鍵菜單!
HTML代碼
首先我們定義一個HTML區(qū)域,給它分配一個ID,之后我們要用到這個ID:
- <section contextmenu="mymenu">
- <!--
- 為了讓代碼清晰整潔
- 我會把菜單放到這個元素內(nèi)部
- -->
- </section>
定義好這個元素后,現(xiàn)在我們來創(chuàng)建真正的菜單元素:
- <menu type="context" id="mymenu">
- <menuitem label="重新加載本文" onclick="window.location.reload();" icon="/images/refresh-icon.png"></menuitem>
- <menuitem label="跳躍至評論區(qū)" onclick="window.location='#comments';" icon="/images/comment_icon.gif"></menuitem>
- <menu label="分享本文至..." icon="/images/share_icon.gif">
- <menuitem label="新浪微博" icon="/images/twitter_icon.gif" onclick="goTo('//twitter.com/intent/tweet?text=' + document.title + ': ' + window.location.href);"></menuitem>
- <menuitem label="QQ空間" icon="/images/facebook_icon16x16.gif" onclick="goTo('//facebook.com/sharer/sharer.php?u=' + window.location.href);"></menuitem>
- </menu>
- </menu>
注意,這里的menu標(biāo)記的ID和上面的contextmenu里的值是一致的,這樣做的效果是,只有在上面的那個section區(qū)域里點(diǎn)擊右鍵時才會顯示這些右鍵菜單。這些菜單里可以配置菜單名,菜單圖標(biāo)和onclick事件,用來聲明它們的意義和要執(zhí)行的動作。動作可以是預(yù)先定義的JavaScript動作,或是執(zhí)行inline的JavaScript代碼。相同的菜單可以放到頁面的多個區(qū)域,不需要重復(fù)創(chuàng)建。
目前只有火狐瀏覽器是唯一實(shí)現(xiàn)了這個API的瀏覽器。一些特別重要的功能我一般不喜歡放到右鍵菜單里,但有這樣的功能當(dāng)然是十分方便,這個API的主旨是提高易用性而不會有任何負(fù)面影響。我在菜單里放置的分享功能就是一個很好的例子。相信你在你的項(xiàng)目里也經(jīng)常使用右鍵菜單,不是嗎?
相關(guān)文章
- 下面小編就為大家?guī)硪黄媪私鈎tml.css溢出。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-29
- 這篇文章主要為大家詳細(xì)介紹了使用HTML5里classList操作CSS類的方法,感興趣的小伙伴們可以參考一下2016-06-28
- 超文本標(biāo)記語言,標(biāo)準(zhǔn)通用標(biāo)記語言下的一個應(yīng)用。 “超文本”就是指頁面內(nèi)可以包含圖片、鏈接,甚至音樂、程序等非文字元素。 超文本標(biāo)記語言的結(jié)構(gòu)包括“頭”部分、和“主2016-06-28
- 下面小編就為大家?guī)硪黄獪\談HTML代碼中的空格和空行。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-27
- <canvas></canvas>是HTML5中新增的標(biāo)簽,用于繪制圖形,這篇文章主要為大家詳細(xì)介紹了HTML5 canvas基本繪圖之圖形組合方法,感興趣的小伙伴們可以參考一下2016-06-27
- 下面小編就為大家?guī)硪黄猦tm初學(xué)筆記(新手必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-29