国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種在網(wǎng)頁中實(shí)現(xiàn)自定義菜單顯示的方法及裝置制造方法

      文檔序號:6493549閱讀:472來源:國知局
      一種在網(wǎng)頁中實(shí)現(xiàn)自定義菜單顯示的方法及裝置制造方法
      【專利摘要】本發(fā)明實(shí)施例公開了一種在網(wǎng)頁中實(shí)現(xiàn)自定義菜單顯示的方法及裝置,其中,所述方法包括:在監(jiān)測到右鍵點(diǎn)擊操作事件時(shí),若確定顯示自定義菜單,則根據(jù)鼠標(biāo)光標(biāo)當(dāng)前所處位置的頁面元素生成配置信息;根據(jù)配置信息生成自定義菜單項(xiàng)以及菜單節(jié)點(diǎn),將生成的自定義菜單項(xiàng)添加到所述菜單節(jié)點(diǎn)中,得到添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單;顯示所述添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單。采用本發(fā)明,能夠根據(jù)用戶右鍵點(diǎn)擊時(shí)鼠標(biāo)光標(biāo)所處的頁面元素生成配置信息,并生成對應(yīng)的菜單供用戶選擇,實(shí)現(xiàn)了豐富的動(dòng)態(tài)自定義菜單的功能。
      【專利說明】一種在網(wǎng)頁中實(shí)現(xiàn)自定義菜單顯示的方法及裝置
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及自定義菜單顯示【技術(shù)領(lǐng)域】,尤其涉及一種在網(wǎng)頁中實(shí)現(xiàn)自定義菜單顯示的方法及裝置。
      【背景技術(shù)】
      [0002]在計(jì)算機(jī)領(lǐng)域中,右鍵菜單是指用戶在運(yùn)行計(jì)算機(jī)過程中,通過點(diǎn)擊鼠標(biāo)右鍵而彈出的包括多個(gè)選項(xiàng)的列表,在右鍵菜單中,用戶可以點(diǎn)擊左鍵選擇其中的一個(gè)選項(xiàng)以進(jìn)行相應(yīng)的控制操作,而如果在菜單外點(diǎn)擊左鍵,則計(jì)算機(jī)系統(tǒng)會(huì)隱藏該右鍵菜單。現(xiàn)有的右鍵菜單為系統(tǒng)菜單,包括已經(jīng)設(shè)置好的各類不同的菜單項(xiàng),系統(tǒng)菜單中的菜單項(xiàng)作為相應(yīng)功能的入口提供給用戶,以便用戶快捷地打開相應(yīng)的處理功能對當(dāng)前右鍵點(diǎn)擊時(shí)所處位置的元素進(jìn)行處理。
      [0003]現(xiàn)有技術(shù)中,右鍵菜單是靜態(tài)的,即各菜單項(xiàng)均已預(yù)先制作確定,并不能夠根據(jù)當(dāng)前右鍵點(diǎn)擊時(shí)所處位置的頁面元素動(dòng)態(tài)生成并加載自定義菜單。

      【發(fā)明內(nèi)容】

      [0004]本發(fā)明實(shí)施例所要解決的技術(shù)問題在于,提供一種在網(wǎng)頁中實(shí)現(xiàn)自定義菜單顯示的方法及裝置,可進(jìn)行動(dòng)態(tài)自定義菜單的生成以及顯示。
      [0005]為了解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種在網(wǎng)頁中實(shí)現(xiàn)自定義菜單顯示的方法,包括:
      [0006]在監(jiān)測到右鍵點(diǎn)擊操作事件時(shí),若確定顯示自定義菜單,則根據(jù)鼠標(biāo)光標(biāo)當(dāng)前所處位置的頁面元素生成配置信息;
      [0007]根據(jù)配置信息生成自定義菜單項(xiàng)以及菜單節(jié)點(diǎn),將生成的自定義菜單項(xiàng)添加到所述菜單節(jié)點(diǎn)中,得到添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單;
      [0008]顯示所述添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單。
      [0009]其中,所述在監(jiān)測到右鍵點(diǎn)擊操作事件時(shí),若確定顯示自定義菜單,則根據(jù)鼠標(biāo)光標(biāo)當(dāng)前所處位置的頁面元素生成配置信息,包括:
      [0010]在監(jiān)測到右鍵點(diǎn)擊操作事件時(shí),判斷鼠標(biāo)光標(biāo)當(dāng)前所處位置是否位于需要顯示自定義菜單的頁面元素的位置;
      [0011]若是,則確定顯示自定義菜單,根據(jù)鼠標(biāo)光標(biāo)當(dāng)前所處位置的頁面元素生成配置信息。
      [0012]其中,所述根據(jù)配置信息生成自定義菜單項(xiàng)以及菜單節(jié)點(diǎn),將生成的自定義菜單項(xiàng)添加到所述菜單節(jié)點(diǎn)中,得到添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單,包括:
      [0013]根據(jù)配置信息中所指示的菜單項(xiàng)文本和/或菜單項(xiàng)圖標(biāo),生成對應(yīng)的自定義菜單項(xiàng);
      [0014]將生成的自定義菜單項(xiàng)添加到所述菜單節(jié)點(diǎn)中,得到添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單;
      [0015]其中,所述自定義菜單的寬度值為生成的自定義菜單項(xiàng)中寬度的最大值。
      [0016]其中,所述根據(jù)配置信息中所指示的菜單項(xiàng)文本和/或菜單項(xiàng)圖標(biāo),生成對應(yīng)的自定義菜單項(xiàng),包括:
      [0017]繪制文檔對象模型節(jié)點(diǎn);
      [0018]根據(jù)文檔對象模型節(jié)點(diǎn)與配置信息中所指示的菜單項(xiàng)文本生成文本節(jié)點(diǎn),和/或根據(jù)文檔對象模型節(jié)點(diǎn)與配置信息中所指示的菜單項(xiàng)圖標(biāo)生成圖標(biāo)節(jié)點(diǎn);
      [0019]將生成的文本節(jié)點(diǎn)和/或圖標(biāo)節(jié)點(diǎn)構(gòu)成自定義菜單項(xiàng)。
      [0020]其中,所述根據(jù)配置信息中所指示的菜單項(xiàng)文本和/或菜單項(xiàng)圖標(biāo),生成對應(yīng)的自定義菜單項(xiàng),包括:
      [0021]繪制文檔對象模型節(jié)點(diǎn);
      [0022]根據(jù)配置信息中所指示的菜單項(xiàng)文本和/或菜單項(xiàng)圖標(biāo),并根據(jù)所述文檔對象模型節(jié)點(diǎn),生成自定義菜單項(xiàng);
      [0023]在所述文檔對象模型節(jié)點(diǎn)中增加子菜單節(jié)點(diǎn),以指示所述生成的自定義菜單項(xiàng)包括子菜單;
      [0024]根據(jù)配置信息中所指示的子菜單項(xiàng)文本和/或子菜單項(xiàng)圖標(biāo),生成對應(yīng)的各子菜單項(xiàng),得到子菜單;
      [0025]將所述子菜單與所述生成的自定義菜單項(xiàng)關(guān)聯(lián)。
      [0026]其中,還包括:
      [0027]在檢測到鼠標(biāo)進(jìn)入事件時(shí),若所述鼠標(biāo)進(jìn)入事件關(guān)聯(lián)的自定義菜單項(xiàng)包括子菜單,則進(jìn)一步顯示生成的子菜單項(xiàng);
      [0028]在檢測到鼠標(biāo)離開事件時(shí),將顯示的子菜單項(xiàng)隱藏,并在檢測到點(diǎn)擊操作時(shí),隱藏所述顯示的自定義菜單。
      [0029]其中,所述根據(jù)配置信息生成自定義菜單項(xiàng)以及菜單節(jié)點(diǎn),將生成的自定義菜單項(xiàng)添加到所述菜單節(jié)點(diǎn)中,得到添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單,還包括:
      [0030]禁止將對所述得到的自定義菜單上的鼠標(biāo)操作事件冒泡給該自定義菜單所屬的父節(jié)點(diǎn),所述鼠標(biāo)操作事件包括鼠標(biāo)彈起事件、鼠標(biāo)按下事件、鼠標(biāo)點(diǎn)擊事件中的任一種或多種。
      [0031]其中,所述顯示所述添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單之前,還包括:
      [0032]構(gòu)造自定義菜單邊框的裝飾性節(jié)點(diǎn),以便于在所述顯示所述添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單中包括所述裝飾性節(jié)點(diǎn)。
      [0033]相應(yīng)地,本發(fā)明實(shí)施例還提供了一種在網(wǎng)頁中實(shí)現(xiàn)自定義菜單顯示的裝置,包括:
      [0034]生成模塊,用于在監(jiān)測到右鍵點(diǎn)擊操作事件時(shí),若確定顯示自定義菜單,則根據(jù)鼠標(biāo)光標(biāo)當(dāng)前所處位置的頁面元素生成配置信息;
      [0035]獲取模塊,用于根據(jù)配置信息生成自定義菜單項(xiàng)以及菜單節(jié)點(diǎn),將生成的自定義菜單項(xiàng)添加到所述菜單節(jié)點(diǎn)中,得到添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單;
      [0036]顯示模塊,用于顯示所述添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單。
      [0037]其中,所述生成模塊包括:
      [0038]判斷單元,用于在監(jiān)測到右鍵點(diǎn)擊操作事件時(shí),判斷鼠標(biāo)光標(biāo)當(dāng)前所處位置是否位于需要顯示自定義菜單的頁面元素的位置;
      [0039]生成單元,用于所述判斷單元的判斷結(jié)果為是時(shí),則確定顯示自定義菜單,根據(jù)鼠標(biāo)光標(biāo)當(dāng)前所處位置的頁面元素生成配置信息。
      [0040]其中,所述獲取模塊包括:
      [0041]菜單項(xiàng)生成單元,用于根據(jù)配置信息中所指示的菜單項(xiàng)文本和/或菜單項(xiàng)圖標(biāo),生成對應(yīng)的自定義菜單項(xiàng);
      [0042]菜單生成單元,用于將生成的自定義菜單項(xiàng)添加到所述菜單節(jié)點(diǎn)中,得到添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單;
      [0043]其中,所述自定義菜單的寬度值為生成的自定義菜單項(xiàng)中寬度的最大值。
      [0044]其中,所述菜單項(xiàng)生成單元包括:
      [0045]第一繪制子單元,用于繪制文檔對象模型節(jié)點(diǎn);
      [0046]第一生成子單元,用于根據(jù)文檔對象模型節(jié)點(diǎn)與配置信息中所指示的菜單項(xiàng)文本生成文本節(jié)點(diǎn),和/或根據(jù)文檔對象模型節(jié)點(diǎn)與配置信息中所指示的菜單項(xiàng)圖標(biāo)生成圖標(biāo)節(jié)點(diǎn);
      [0047]第一構(gòu)造子單元,用于將生成的文本節(jié)點(diǎn)和/或圖標(biāo)節(jié)點(diǎn)構(gòu)成自定義菜單項(xiàng)。
      [0048]其中,所述菜單項(xiàng)生成單元包括:
      [0049]第二繪制子單元,用于繪制文檔對象模型節(jié)點(diǎn);
      [0050]第二生成子單元,用于根據(jù)配置信息中所指示的菜單項(xiàng)文本和/或圖標(biāo),并根據(jù)所述文檔對象模型節(jié)點(diǎn),生成菜單項(xiàng);
      [0051]節(jié)點(diǎn)生成子單元,用于在所述文檔對象模型節(jié)點(diǎn)中增加子菜單節(jié)點(diǎn),以指示所述生成的自定義菜單項(xiàng)包括子菜單;
      [0052]第三生成子單元,用于根據(jù)配置信息中所指示的子菜單項(xiàng)文本和/或子菜單項(xiàng)圖標(biāo),生成對應(yīng)的各子菜單項(xiàng),得到子菜單;
      [0053]關(guān)聯(lián)子單元,用于將所述子菜單與所述生成的自定義菜單項(xiàng)關(guān)聯(lián)。
      [0054]其中,還包括:
      [0055]子菜單顯示模塊,用于在檢測到鼠標(biāo)進(jìn)入事件時(shí),若所述鼠標(biāo)進(jìn)入事件關(guān)聯(lián)的自定義菜單項(xiàng)包括子菜單,則進(jìn)一步顯示生成的子菜單項(xiàng);
      [0056]隱藏模塊,用于在檢測到鼠標(biāo)離開事件時(shí),將顯示的子菜單項(xiàng)隱藏,并在檢測到點(diǎn)擊操作時(shí),隱藏所述顯示的自定義菜單。
      [0057]其中,還包括:屏蔽模塊,用于禁止將對所述得到的自定義菜單上的鼠標(biāo)操作事件冒泡給該自定義菜單所屬的父節(jié)點(diǎn),所述鼠標(biāo)操作事件包括鼠標(biāo)彈起事件、鼠標(biāo)按下事件、鼠標(biāo)點(diǎn)擊事件中的任一種或多種。
      [0058]其中,還包括:構(gòu)造模塊,用于構(gòu)造自定義菜單邊框的裝飾性節(jié)點(diǎn),以便于在所述顯示模塊顯示所述添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單中包括所述裝飾性節(jié)點(diǎn)。
      [0059]實(shí)施本發(fā)明實(shí)施例,具有如下有益效果:
      [0060]本發(fā)明能夠根據(jù)用戶右鍵點(diǎn)擊時(shí)鼠標(biāo)光標(biāo)所處的頁面元素生成配置信息,并生成對應(yīng)的菜單供用戶選擇,實(shí)現(xiàn)了豐富的動(dòng)態(tài)自定義菜單的功能。
      【專利附圖】

      【附圖說明】
      [0061]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
      [0062]圖1是本發(fā)明實(shí)施例的一種在網(wǎng)頁中實(shí)現(xiàn)自定義菜單顯示的方法的流程示意圖;
      [0063]圖2是本發(fā)明實(shí)施例的另一種在網(wǎng)頁中實(shí)現(xiàn)自定義菜單顯示的方法的流程示意圖;
      [0064]圖3是本發(fā)明實(shí)施例的生成在網(wǎng)頁中實(shí)現(xiàn)自定義菜單的方法的流程示意圖;
      [0065]圖4是本發(fā)明實(shí)施例的一種在網(wǎng)頁中實(shí)現(xiàn)自定義菜單顯示的裝置的結(jié)構(gòu)示意圖;
      [0066]圖5是本發(fā)明實(shí)施例的另一種在網(wǎng)頁中實(shí)現(xiàn)自定義菜單顯示的裝置的結(jié)構(gòu)示意圖;
      [0067]圖6是圖5中的菜單項(xiàng)生成單元的其中一種具體結(jié)構(gòu)示意圖;
      [0068]圖7是圖5中的菜單項(xiàng)生成單元的其中另一種具體結(jié)構(gòu)示意圖。
      【具體實(shí)施方式】
      [0069]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
      [0070]圖1是本發(fā)明實(shí)施例的一種在網(wǎng)頁中實(shí)現(xiàn)自定義菜單顯示的方法的流程示意圖;本發(fā)明實(shí)施例的所述方法可應(yīng)用在各類電腦等待鼠標(biāo)功能的終端設(shè)備中,具體的,本實(shí)施例的所述方法包括:
      [0071]SlOl:在監(jiān)測到右鍵點(diǎn)擊操作事件時(shí),若確定顯示自定義菜單,則根據(jù)鼠標(biāo)光標(biāo)當(dāng)前所處位置的頁面元素生成配置信息。
      [0072]在檢測到右鍵點(diǎn)擊操作事件時(shí),可根據(jù)用戶當(dāng)前點(diǎn)擊的位置來確定應(yīng)該顯示系統(tǒng)菜單,還是顯示自定義菜單,如果用戶右鍵點(diǎn)擊時(shí)鼠標(biāo)光標(biāo)所處的位置為電腦桌面,或者網(wǎng)頁頁面的空白處等地方,則需要顯示默認(rèn)的系統(tǒng)菜單,而如果是位于一些預(yù)先被指定為需要顯示自定義菜單的對象所處的位置,例如預(yù)先指定了圖片是需要顯示自定義菜單的圖片對象,而鼠標(biāo)光標(biāo)所處位置為一張圖片時(shí),則需要顯示自定義菜單,需要根據(jù)個(gè)人電腦等終端設(shè)備中的功能程序,根據(jù)鼠標(biāo)光標(biāo)當(dāng)前所處位置的頁面元素生成配置信息,例如,根據(jù)鼠標(biāo)光標(biāo)當(dāng)前所處位置的頁面元素為圖片時(shí),則根據(jù)系統(tǒng)的功能程序,生成包括放大、縮小等配置項(xiàng),以及根據(jù)美圖修飾的用于進(jìn)行圖片處理的功能程序確定的名為美圖修飾配置項(xiàng)
      坐寸ο[0073]所述配置信息中自定義菜單的標(biāo)題ID,該自定義菜單中每個(gè)自定義菜單項(xiàng)的文本信息、圖標(biāo)信息等,所述配置信息的生成步驟可以包括:從終端系統(tǒng)中已安裝的功能中,選擇能夠?qū)κ髽?biāo)光標(biāo)當(dāng)前所處位置的頁面元素進(jìn)行處理的功能,然后將用于描述此類功能的文本信息和/或圖標(biāo)信息等信息加入到配置模板中得到配置信息,而該配置模板的標(biāo)題則作為此次生成的自定義菜單的標(biāo)題。
      [0074]S102:根據(jù)配置信息生成自定義菜單項(xiàng)以及菜單節(jié)點(diǎn),將生成的自定義菜單項(xiàng)添加到所述菜單節(jié)點(diǎn)中,得到添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單。
      [0075]可以為根據(jù)配置信息中的文本信息和/或圖標(biāo)信息首先生成各個(gè)自定義菜單項(xiàng),然后根據(jù)各個(gè)自定義菜單項(xiàng)中的最大寬度,來確定菜單節(jié)點(diǎn)的寬度,并把自定義菜單項(xiàng)添加到菜單節(jié)點(diǎn)中,得到包括所有自定義菜單項(xiàng)的自定義菜單。
      [0076]具體生成自定義菜單項(xiàng)的步驟可以包括:繪制文檔對象模型節(jié)點(diǎn);根據(jù)文檔對象模型節(jié)點(diǎn)與配置信息中所指示的菜單項(xiàng)文本生成文本節(jié)點(diǎn),和/或根據(jù)文檔對象模型節(jié)點(diǎn)與配置信息中所指示的自定義菜單項(xiàng)圖標(biāo)生成圖標(biāo)節(jié)點(diǎn);將生成的文本節(jié)點(diǎn)和/或圖標(biāo)節(jié)點(diǎn)構(gòu)成自定義菜單項(xiàng)。
      [0077]S103:顯示所述添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單。
      [0078]將生成的自定義菜單顯示給用戶,以便于用戶點(diǎn)擊選中其中的某一自定義菜單項(xiàng)后,調(diào)用對應(yīng)的功能程序?qū)λ鲈貓?zhí)行相應(yīng)的處理。需要說明的是,自定義菜單中的自定義菜單項(xiàng)可以采用類似于快捷方式的處理方法進(jìn)行處理,以實(shí)現(xiàn)處理功能接口的功能,其具體實(shí)施過程可參考現(xiàn)有的實(shí)現(xiàn)方式。
      [0079]通過上述實(shí)施例的描述可知,本發(fā)明實(shí)施例具有以下有益效果:
      [0080]本發(fā)明能夠根據(jù)用戶右鍵點(diǎn)擊時(shí)鼠標(biāo)光標(biāo)所處的頁面元素生成配置信息,并生成對應(yīng)的菜單供用戶選擇,實(shí)現(xiàn)了豐富的動(dòng)態(tài)自定義菜單的功能。
      [0081]再請參見圖2,是本發(fā)明實(shí)施例的另一種在網(wǎng)頁中實(shí)現(xiàn)自定義菜單顯示的方法的流程示意圖;本發(fā)明實(shí)施例的所述方法可應(yīng)用在各類電腦等待鼠標(biāo)功能的終端設(shè)備中,并且同時(shí)以在本實(shí)施例中以windows操作系統(tǒng)中實(shí)現(xiàn)所述在網(wǎng)頁中實(shí)現(xiàn)自定義菜單顯示的方法為例進(jìn)行詳細(xì)說明,具體的,本實(shí)施例的所述在網(wǎng)頁中實(shí)現(xiàn)自定義菜單顯示的方法包括:
      [0082]S201:在監(jiān)測到右鍵點(diǎn)擊操作事件時(shí),判斷鼠標(biāo)光標(biāo)當(dāng)前所處位置是否位于需要顯示自定義菜單的頁面元素的位置。
      [0083]S202:若是,則確定顯示自定義菜單,根據(jù)鼠標(biāo)光標(biāo)當(dāng)前所處位置的頁面元素生成
      配置信息。
      [0084]在檢測到右鍵點(diǎn)擊操作事件時(shí),可根據(jù)用戶當(dāng)前點(diǎn)擊的位置來確定應(yīng)該顯示系統(tǒng)菜單,還是顯示自定義菜單,如果用戶右鍵點(diǎn)擊時(shí)鼠標(biāo)光標(biāo)所處的位置為電腦桌面,或者網(wǎng)頁頁面的空白處等地方,則需要顯示默認(rèn)的系統(tǒng)菜單,而如果是位于一些預(yù)先被指定為需要顯示自定義菜單的對象所處的位置,例如預(yù)先指定了圖片是需要顯示自定義菜單的圖片對象,而鼠標(biāo)光標(biāo)所處位置為一張圖片時(shí),則需要顯示自定義菜單。
      [0085]具體的,可以在網(wǎng)頁頁面的根節(jié)點(diǎn)document中監(jiān)聽右鍵點(diǎn)擊contextmenu事件,在該事件處理方法中,根據(jù)window, event.returnValue變量的值或者該右鍵點(diǎn)擊事件的enableDefaultContextMenu屬性的值來決定是否顯示系統(tǒng)菜單。可以通過向外暴露useDefaultContextMenu方法根據(jù)鼠標(biāo)右鍵點(diǎn)擊時(shí)所處的位置的頁面元素,來控制其中的window, event.returnValue 變量的值或者 enableDefaultContextMenu 屬性的值,從而確定顯示系統(tǒng)菜單還是自定義菜單。
      [0086]其中,所述的window, event.returnValue變量是指:在IE內(nèi)核的瀏覽器中,window, event是一個(gè)全局對象,當(dāng)有事件觸發(fā)時(shí),會(huì)修改里面的returnValue的值。所述的enableDefaultContextMenu屬性是指:在非IE內(nèi)核的瀏覽器中,會(huì)將事件的相關(guān)屬性信息作為第一個(gè)參數(shù)傳遞給事件處理方法。
      [0087]S203:根據(jù)配置信息生成自定義菜單項(xiàng)以及菜單節(jié)點(diǎn),將生成的自定義菜單項(xiàng)添加到所述菜單節(jié)點(diǎn)中,得到添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單。
      [0088]在生成菜單節(jié)點(diǎn)的同時(shí),還可以根據(jù)需要構(gòu)造自定義菜單邊框的裝飾性節(jié)點(diǎn),以便于在所述顯示所述添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單中包括所述裝飾性節(jié)點(diǎn)。
      [0089]具體實(shí)現(xiàn)時(shí),采用初始化方法init,該init方法的參數(shù)為所述配置信息中的配置項(xiàng),根據(jù)配置項(xiàng)提供的ID,或者頁面中已生成的自定義菜單數(shù)目生成一個(gè)ID為contextmenu_XX的div節(jié)點(diǎn),并構(gòu)造自定義菜單邊框的裝飾性節(jié)點(diǎn),將需要顯示的自定義菜單項(xiàng)添加到所述contextmenu_XX的div節(jié)點(diǎn)中。
      [0090]進(jìn)一步具體的,還可以禁止將對所述得到的自定義菜單上的鼠標(biāo)操作事件冒泡給該自定義菜單所屬的父節(jié)點(diǎn),所述鼠標(biāo)操作事件包括鼠標(biāo)彈起事件、鼠標(biāo)按下事件、鼠標(biāo)點(diǎn)擊事件中的任一種或多種。即禁止自定義菜單上的鼠標(biāo)彈起mouseup、鼠標(biāo)按下mousedown以及鼠標(biāo)點(diǎn)擊事件click事件的冒泡,這類事件只是與相應(yīng)的自定義菜單交互,不應(yīng)該冒泡給父級元素。
      [0091 ] S204:顯示所述添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單。
      [0092]即將已經(jīng)添加了所有生成的自定義菜單項(xiàng)的自定義菜單顯示給用戶。具體可以通過控制層疊樣式表CSS的樣式,設(shè)置自定義菜單可見即完成了自定義菜單的顯示。
      [0093]具體實(shí)現(xiàn)時(shí),在自定義菜單的顯示show方法中,可以相應(yīng)添加鼠標(biāo)進(jìn)入mouseenter和鼠標(biāo)移出mouseleave事件,當(dāng)鼠標(biāo)光標(biāo)進(jìn)入自定義菜單時(shí),設(shè)置其中的_isHovered屬性為true,表示光標(biāo)位于自定義菜單內(nèi),而移出自定義菜單時(shí),則將其置為false,同時(shí),可以在documen.body上綁定鼠標(biāo)點(diǎn)擊click事件,這樣,當(dāng)鼠標(biāo)移出并點(diǎn)擊其他地方時(shí),當(dāng)前顯示的所述自定義菜單便會(huì)消失,而在隱藏hide方法中,可以移除鼠標(biāo)進(jìn)入、鼠標(biāo)移出以及鼠標(biāo)點(diǎn)擊事件,以減少內(nèi)存的使用。
      [0094]S205:在檢測到鼠標(biāo)進(jìn)入事件時(shí),若所述鼠標(biāo)進(jìn)入事件關(guān)聯(lián)的自定義菜單項(xiàng)包括子菜單,則進(jìn)一步顯示生成的子菜單項(xiàng)。
      [0095]子菜單項(xiàng)繼承于自定義菜單項(xiàng),在根據(jù)配置信息生成自定義菜單項(xiàng)時(shí),若該自定義菜單項(xiàng)包括子菜單,則需要在該自定義菜單項(xiàng)中增加一個(gè)用于指示該自定義菜單項(xiàng)含有子菜單的節(jié)點(diǎn),而子菜單中每一項(xiàng)的生成方式與自定義菜單項(xiàng)的生成方式相同。
      [0096]S206:在檢測到鼠標(biāo)離開事件時(shí),將顯示的子菜單項(xiàng)隱藏,并在檢測到點(diǎn)擊操作時(shí),隱藏所述顯示的自定義菜單。
      [0097]同樣,子菜單上同樣綁定相應(yīng)的鼠標(biāo)進(jìn)入、鼠標(biāo)移出以及鼠標(biāo)點(diǎn)擊事件等,以實(shí)現(xiàn)相應(yīng)子菜單的顯示、點(diǎn)擊啟用或者隱藏等。[0098]進(jìn)一步的具體的,再請參見圖3,是本發(fā)明實(shí)施例的生成自定義菜單的方法的流程示意圖;如上所述,所設(shè)計(jì)的配置信息是根據(jù)頁面元素,并根據(jù)系統(tǒng)中已存在的功能程序獲得。具體的,生成所述自定義菜單的方法具體包括:
      [0099]S301:根據(jù)配置信息中所指示的菜單項(xiàng)文本和/或菜單項(xiàng)圖標(biāo),生成對應(yīng)的自定義菜單項(xiàng)。
      [0100]所述S301具體可以包括:繪制文檔對象模型節(jié)點(diǎn);根據(jù)文檔對象模型節(jié)點(diǎn)與配置信息中所指示的菜單項(xiàng)文本生成文本節(jié)點(diǎn),和/或根據(jù)文檔對象模型節(jié)點(diǎn)與配置信息中所指示的菜單項(xiàng)圖標(biāo)生成圖標(biāo)節(jié)點(diǎn);將生成的文本節(jié)點(diǎn)和/或圖標(biāo)節(jié)點(diǎn)構(gòu)成自定義菜單項(xiàng)。
      [0101]具體實(shí)現(xiàn)時(shí),可以通過系統(tǒng)的調(diào)用增加元素additems方法,生成對應(yīng)的菜單項(xiàng)ContextMenuItem(右鍵菜單元素),然后通過計(jì)算出每個(gè)菜單項(xiàng)的寬度來決定菜單的最大寬度。每個(gè)菜單項(xiàng)的寬度值是通過getTextWidth方法完成,該getTextWidth方法的實(shí)現(xiàn)為:在頁面中創(chuàng)建一個(gè)文本節(jié)點(diǎn),將其位置設(shè)為可視窗口外,添加至頁面可視元素的根節(jié)點(diǎn)body節(jié)點(diǎn)中,獲取其OffsetWidth屬性即元素的可視寬度即可。
      [0102]對于ContextMenuItem對象,在對其初始化方法init中,調(diào)用render方法繪制文檔對象模型dom節(jié)點(diǎn),如果配置信息中除含有文本外,還含有圖標(biāo)icon信息,則在自定義菜單項(xiàng)的文本節(jié)點(diǎn)前添加圖片節(jié)點(diǎn),否則只生成文本節(jié)點(diǎn)。繪制完成后,在dom節(jié)點(diǎn)上添加點(diǎn)擊click事件,事件處理中,如果有對應(yīng)的正在點(diǎn)擊onclick屬性并且菜單項(xiàng)是啟用狀態(tài),首先調(diào)用onclick方法,然后逐級調(diào)用onclickDocument方法將其隱藏。否則,不作任何處理。
      [0103]如果根據(jù)配置信息確定某一自定義菜單的菜單項(xiàng)包括子菜單,那么,所述S301具體可以包括:繪制文檔對象模型節(jié)點(diǎn);根據(jù)配置信息中所指示的菜單項(xiàng)文本和/或菜單項(xiàng)圖標(biāo),并根據(jù)所述文檔對象模型節(jié)點(diǎn),生成自定義菜單項(xiàng);在所述文檔對象模型節(jié)點(diǎn)中增加子菜單節(jié)點(diǎn),以指示所述生成的自定義菜單項(xiàng)包括子菜單;根據(jù)配置信息中所指示的子菜單項(xiàng)文本和/或子菜單項(xiàng)圖標(biāo),生成對應(yīng)的各子菜單項(xiàng),得到子菜單;將所述子菜單與所述生成的自定義菜單項(xiàng)關(guān)聯(lián)。
      [0104]即除了通過上述具體實(shí)現(xiàn)時(shí)得到的子菜單項(xiàng),還包括某一自定義菜單項(xiàng)的子菜單項(xiàng)的設(shè)置與生成,即還包括ContextSubmenuItem即子菜單元素。所述的ContextSubmenuItem繼承于上述的ContextMenuItem對象,是實(shí)現(xiàn)多級菜單的關(guān)鍵。在初始化init方法中,同樣調(diào)用render繪制文檔對象模型dom節(jié)點(diǎn),增加一個(gè)‘〈spanclass= “subicom”>〈/span>’節(jié)點(diǎn)用于指示該自定義菜單項(xiàng)含有子菜單。其click事件也與ContextMenuItem對象的類似,只是不在子菜單上隱藏父級菜單即該子菜單所述自定義菜單項(xiàng)的自定義菜單。為了實(shí)現(xiàn)多級菜單,其也添加了鼠標(biāo)進(jìn)入mouseenter和鼠標(biāo)移出mouseleave事件,如果該子菜單所在自定義菜單項(xiàng)啟用了,則顯示或者隱藏相應(yīng)的子菜單項(xiàng),如果是禁用狀態(tài),則不作處理。
      [0105]在子菜單上監(jiān)聽mouseenter以及mouseleave事件,在監(jiān)聽到所述mouseenter事件時(shí),給該子菜單所在自定義菜單項(xiàng)的節(jié)點(diǎn)上添加contextmenuitem_hover類,利用css來實(shí)現(xiàn)選中態(tài)的效果;而在監(jiān)聽到所述mouseleave事件時(shí),則隱藏該子菜單,并移除子菜單所在自定義菜單項(xiàng)的節(jié)點(diǎn)的contextmenuitem_hover類,取消選中態(tài)。
      [0106]S302:將生成的自定義菜單項(xiàng)添加到所述菜單節(jié)點(diǎn)中,得到添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單。
      [0107]將生成的每一個(gè)自定義菜單項(xiàng)添加到所述菜單節(jié)點(diǎn)中,即可實(shí)現(xiàn)自定義菜單。需要說明的是,自定義菜單中的自定義菜單項(xiàng)可以采用類似于快捷方式的處理方法進(jìn)行處理,以實(shí)現(xiàn)處理功能接口的功能,其具體實(shí)施過程可參考現(xiàn)有的實(shí)現(xiàn)方式。
      [0108]本發(fā)明能夠根據(jù)用戶右鍵點(diǎn)擊時(shí)鼠標(biāo)光標(biāo)所處的頁面元素生成配置信息,并生成對應(yīng)的菜單供用戶選擇,實(shí)現(xiàn)了豐富的動(dòng)態(tài)自定義菜單的功能,并且由于自定義菜單的父節(jié)點(diǎn)或者祖先節(jié)點(diǎn)可能也添加了鼠標(biāo)操作的響應(yīng)事件,如果自定義菜單的鼠標(biāo)操作等事件冒泡到其祖先節(jié)點(diǎn),剛會(huì)觸發(fā)祖先節(jié)點(diǎn)相關(guān)的處理器,造成誤操作,因此,本發(fā)明實(shí)施例中,禁止自定義菜單中的鼠標(biāo)事件向上冒泡,可有效避免誤操作的產(chǎn)生。進(jìn)一步的,自定義菜單的實(shí)現(xiàn)以及處理對系統(tǒng)資源的占用較低,在菜單被隱藏后,該自定義菜單相應(yīng)的事件監(jiān)聽器等被移除,進(jìn)一步的避免了系統(tǒng)資源的浪費(fèi)。
      [0109]下面對本發(fā)明的自定義顯示裝置進(jìn)行詳細(xì)說明。
      [0110]請參見圖4,是本發(fā)明實(shí)施例的一種在網(wǎng)頁中實(shí)現(xiàn)自定義菜單顯示的裝置的結(jié)構(gòu)示意圖;本發(fā)明實(shí)施例的所述自定義菜單可應(yīng)用于個(gè)人電腦等終端設(shè)備中,具體可以包括:
      [0111]生成模塊1,用于在監(jiān)測到右鍵點(diǎn)擊操作事件時(shí),若確定顯示自定義菜單,則根據(jù)鼠標(biāo)光標(biāo)當(dāng)前所處位置的頁面元素生成配置信息;
      [0112]獲取模塊2,用于根據(jù)配置信息生成自定義菜單項(xiàng)以及菜單節(jié)點(diǎn),將生成的自定義菜單項(xiàng)添加到所述菜單節(jié)點(diǎn)中,得到添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單;
      [0113]顯示模塊3,用于顯示所述添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定
      義菜單。
      [0114]所述生成模塊I在檢測到右鍵點(diǎn)擊操作事件時(shí),可根據(jù)用戶當(dāng)前點(diǎn)擊的位置來確定應(yīng)該顯示系統(tǒng)菜單,還是顯示自定義菜單,如果用戶右鍵點(diǎn)擊時(shí)鼠標(biāo)光標(biāo)所處的位置為電腦桌面,或者網(wǎng)頁頁面的空白處等地方,則需要顯示默認(rèn)的系統(tǒng)菜單,而如果是位于一些預(yù)先被指定為需要顯示自定義菜單的對象所處的位置,例如預(yù)先指定了圖片是需要顯示自定義菜單的圖片對象,而鼠標(biāo)光標(biāo)所處位置為一張圖片時(shí),則需要顯示自定義菜單。
      [0115]所述配置信息中自定義菜單的標(biāo)題ID,該自定義菜單中每個(gè)自定義菜單項(xiàng)的文本信息、圖標(biāo)信息等,所述配置信息的生成步驟可以包括:從終端系統(tǒng)中已安裝的功能中,選擇能夠?qū)κ髽?biāo)光標(biāo)當(dāng)前所處位置的頁面元素進(jìn)行處理的功能,然后將用于描述此類功能的文本信息和/或圖標(biāo)信息等信息加入到配置模板中得到配置信息,而該配置模板的標(biāo)題則作為此次生成的自定義菜單的標(biāo)題。
      [0116]所述獲取模塊2可以為根據(jù)配置信息中的文本信息和/或圖標(biāo)信息首先生成各個(gè)自定義菜單項(xiàng),然后根據(jù)各個(gè)自定義菜單項(xiàng)中的最大寬度,來確定菜單節(jié)點(diǎn)的寬度,并把自定義菜單項(xiàng)添加到菜單節(jié)點(diǎn)中,得到包括所有自定義菜單項(xiàng)的自定義菜單。
      [0117]所述獲取模塊2獲取自定義菜單具體可以為:繪制文檔對象模型節(jié)點(diǎn);根據(jù)文檔對象模型節(jié)點(diǎn)與配置信息中所指示的菜單項(xiàng)文本生成文本節(jié)點(diǎn),和/或根據(jù)文檔對象模型節(jié)點(diǎn)與配置信息中所指示的自定義菜單項(xiàng)圖標(biāo)生成圖標(biāo)節(jié)點(diǎn);將生成的文本節(jié)點(diǎn)和/或圖標(biāo)節(jié)點(diǎn)構(gòu)成自定義菜單項(xiàng)。[0118]所述顯示模塊3將生成的自定義菜單顯示給用戶,以便于用戶點(diǎn)擊選中其中的某一自定義菜單項(xiàng)后,調(diào)用對應(yīng)的功能程序?qū)λ鲈貓?zhí)行相應(yīng)的處理。需要說明的是,自定義菜單中的自定義菜單項(xiàng)可以采用類似于快捷方式的處理方法進(jìn)行處理,以實(shí)現(xiàn)處理功能接口的功能,其具體實(shí)施過程可參考現(xiàn)有的實(shí)現(xiàn)方式。
      [0119]通過上述實(shí)施例的描述可知,本發(fā)明具有以下優(yōu)點(diǎn):
      [0120]本發(fā)明能夠根據(jù)用戶右鍵點(diǎn)擊時(shí)鼠標(biāo)光標(biāo)所處的頁面元素生成配置信息,并生成對應(yīng)的菜單供用戶選擇,實(shí)現(xiàn)了豐富的動(dòng)態(tài)自定義菜單的功能。
      [0121]再請參見圖5至圖7,對本發(fā)明實(shí)施例的另一種在網(wǎng)頁中實(shí)現(xiàn)自定義菜單顯示的裝置進(jìn)行說明,本發(fā)明實(shí)施例的所述裝置可以設(shè)置在個(gè)人電腦等終端設(shè)備中,圖5是本發(fā)明實(shí)施例的另一種在網(wǎng)頁中實(shí)現(xiàn)自定義菜單顯示的裝置的結(jié)構(gòu)示意圖;所述裝置包括上一實(shí)施例中的生成模塊1、獲取模塊2以及顯示模塊3,進(jìn)一步的,請參見圖5,所述生成模塊I具體可以包括:
      [0122]判斷單元11,用于在監(jiān)測到右鍵點(diǎn)擊操作事件時(shí),判斷鼠標(biāo)光標(biāo)當(dāng)前所處位置是否位于需要顯示自定義菜單的頁面元素的位置;
      [0123]生成單元12,用于所述判斷單元11的判斷結(jié)果為是時(shí),則確定顯示自定義菜單,根據(jù)鼠標(biāo)光標(biāo)當(dāng)前所處位置的頁面元素生成配置信息。
      [0124]在檢測到右鍵點(diǎn)擊操作事件時(shí),所述判斷單元11可根據(jù)用戶當(dāng)前點(diǎn)擊的位置來確定應(yīng)該顯示系統(tǒng)菜單,還是顯示自定義菜單,如果用戶右鍵點(diǎn)擊時(shí)鼠標(biāo)光標(biāo)所處的位置為電腦桌面,或者網(wǎng)頁頁面的空白處等地方,則需要顯示默認(rèn)的系統(tǒng)菜單,而如果是位于一些預(yù)先被指定為需要顯示自定義菜單的對象所處的位置,例如預(yù)先指定了圖片是需要顯示自定義菜單的圖片對象,而鼠標(biāo)光標(biāo)所處位置為一張圖片時(shí),則需要顯示自定義菜單,所述生成單元12則需要根據(jù)個(gè)人電腦等終端設(shè)備中的功能程序,根據(jù)鼠標(biāo)光標(biāo)當(dāng)前所處位置的頁面元素生成配置信息。
      [0125]進(jìn)一步的,再請參見圖5,所述獲取模塊2還可以包括:
      [0126]菜單項(xiàng)生成單元21,用于根據(jù)配置信息中所指示的菜單項(xiàng)文本和/或菜單項(xiàng)圖標(biāo),生成對應(yīng)的自定義菜單項(xiàng);
      [0127]菜單生成單元22,用于將生成的自定義菜單項(xiàng)添加到所述菜單節(jié)點(diǎn)中,得到添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單;
      [0128]其中,所述自定義菜單的寬度值為生成的自定義菜單項(xiàng)中寬度的最大值。
      [0129]在所述生成模塊I生成菜單節(jié)點(diǎn)的同時(shí),還可以根據(jù)需要構(gòu)造自定義菜單邊框的裝飾性節(jié)點(diǎn),以便于在所述顯示所述添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單中包括所述裝飾性節(jié)點(diǎn)。請參見圖5,本實(shí)施例的所述裝置還可以包括:
      [0130]構(gòu)造模塊4,用于構(gòu)造自定義菜單邊框的裝飾性節(jié)點(diǎn),以便于在所述顯示模塊顯示所述添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單中包括所述裝飾性節(jié)點(diǎn)。以及
      [0131]屏蔽模塊5,用于禁止將對所述得到的自定義菜單上的鼠標(biāo)操作事件冒泡給該自定義菜單所屬的父節(jié)點(diǎn),所述鼠標(biāo)操作事件包括鼠標(biāo)彈起事件、鼠標(biāo)按下事件、鼠標(biāo)點(diǎn)擊事件中的任一種或多種。
      [0132]進(jìn)一步請參見圖6,是圖5中的菜單項(xiàng)生成單元的其中一種具體結(jié)構(gòu)示意圖;所述菜單項(xiàng)生成單元21包括:
      [0133]第一繪制子單元211,用于繪制文檔對象模型節(jié)點(diǎn);
      [0134]第一生成子單元212,用于根據(jù)文檔對象模型節(jié)點(diǎn)與配置信息中所指示的菜單項(xiàng)文本生成文本節(jié)點(diǎn),和/或根據(jù)文檔對象模型節(jié)點(diǎn)與配置信息中所指示的菜單項(xiàng)圖標(biāo)生成圖標(biāo)節(jié)點(diǎn);
      [0135]第一構(gòu)造子單元213,用于將生成的文本節(jié)點(diǎn)和/或圖標(biāo)節(jié)點(diǎn)構(gòu)成自定義菜單項(xiàng)。
      [0136]而如果根據(jù)配置信息確定某一自定義菜單的菜單項(xiàng)包括子菜單,那么,再請參見圖7,是圖5中的菜單項(xiàng)生成單元的其中另一種具體結(jié)構(gòu)示意圖。
      [0137]所述菜單項(xiàng)生成單元21包括:
      [0138]第二繪制子單元214,用于繪制文檔對象模型節(jié)點(diǎn);
      [0139]第二生成子單元215,用于根據(jù)配置信息中所指示的菜單項(xiàng)文本和/或圖標(biāo),并根據(jù)所述文檔對象模型節(jié)點(diǎn),生成菜單項(xiàng);
      [0140]節(jié)點(diǎn)生成子單元216,用于在所述文檔對象模型節(jié)點(diǎn)中增加子菜單節(jié)點(diǎn),以指示所述生成的自定義菜單項(xiàng)包括子菜單;
      [0141]第三生成子單元217,用于根據(jù)配置信息中所指示的子菜單項(xiàng)文本和/或子菜單項(xiàng)圖標(biāo),生成對應(yīng)的各子菜單項(xiàng),得到子菜單;
      [0142]關(guān)聯(lián)子單元218,用于將所述子菜單與所述生成的自定義菜單項(xiàng)關(guān)聯(lián)。
      [0143]上述兩種結(jié)構(gòu)圖可同時(shí)設(shè)置于所述菜單項(xiàng)生成單元21,以便于所述菜單項(xiàng)生成單元21可以根據(jù)配置信息,不僅進(jìn)行單獨(dú)的菜單項(xiàng)的生成操作,還可以在某菜單項(xiàng)包括子菜單時(shí),能夠生成對應(yīng)的子菜單項(xiàng),得到子菜單。
      [0144]進(jìn)一步的,再請參見圖5,本實(shí)施例的所述裝置還可以包括:
      [0145]子菜單顯示模塊6,用于在檢測到鼠標(biāo)進(jìn)入事件時(shí),若所述鼠標(biāo)進(jìn)入事件關(guān)聯(lián)的自定義菜單項(xiàng)包括子菜單,則進(jìn)一步顯示生成的子菜單項(xiàng)。
      [0146]隱藏模塊7,用于在檢測到鼠標(biāo)離開事件時(shí),將顯示的子菜單項(xiàng)隱藏,并在檢測到點(diǎn)擊操作時(shí),隱藏所述顯示的自定義菜單。
      [0147]同樣,子菜單上同樣綁定相應(yīng)的鼠標(biāo)進(jìn)入、鼠標(biāo)移出以及鼠標(biāo)點(diǎn)擊事件等,以實(shí)現(xiàn)相應(yīng)子菜單的顯示、點(diǎn)擊啟用或者隱藏等。并且子菜單中各菜單項(xiàng)同樣可以采用類似于快捷方式的處理方法進(jìn)行處理,以實(shí)現(xiàn)處理功能接口的功能,其具體實(shí)施過程可參考現(xiàn)有的實(shí)現(xiàn)方式。
      [0148]通過上述實(shí)施例的描述可知,本發(fā)明具有以下優(yōu)點(diǎn):
      [0149]本發(fā)明能夠根據(jù)用戶右鍵點(diǎn)擊時(shí)鼠標(biāo)光標(biāo)所處的頁面元素生成配置信息,并生成對應(yīng)的菜單供用戶選擇,實(shí)現(xiàn)了豐富的動(dòng)態(tài)自定義菜單的功能,并且由于自定義菜單的父節(jié)點(diǎn)或者祖先節(jié)點(diǎn)可能也添加了鼠標(biāo)操作的響應(yīng)事件,如果自定義菜單的鼠標(biāo)操作等事件冒泡到其祖先節(jié)點(diǎn),剛會(huì)觸發(fā)祖先節(jié)點(diǎn)相關(guān)的處理器,造成誤操作,因此,本發(fā)明實(shí)施例中,禁止自定義菜單中的鼠標(biāo)事件向上冒泡,可有效避免誤操作的產(chǎn)生。進(jìn)一步的,自定義菜單的實(shí)現(xiàn)以及處理對系統(tǒng)資源的占用較低,在菜單被隱藏后,該自定義菜單的相應(yīng)的事件監(jiān)聽器等被移除,進(jìn)一步的避免了系統(tǒng)資源的浪費(fèi)。
      [0150]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random AccessMemory, RAM)等。
      [0151] 以上所揭露的僅為本發(fā)明較佳實(shí)施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
      【權(quán)利要求】
      1.一種在網(wǎng)頁中實(shí)現(xiàn)自定義菜單顯示的方法,其特征在于,包括: 在監(jiān)測到右鍵點(diǎn)擊操作事件時(shí),若確定顯示自定義菜單,則根據(jù)鼠標(biāo)光標(biāo)當(dāng)前所處位置的頁面元素生成配置信息; 根據(jù)配置信息生成自定義菜單項(xiàng)以及菜單節(jié)點(diǎn),將生成的自定義菜單項(xiàng)添加到所述菜單節(jié)點(diǎn)中,得到添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單; 顯示所述添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單。
      2.如權(quán)利要求1所述的方法,其特征在于,所述在監(jiān)測到右鍵點(diǎn)擊操作事件時(shí),若確定顯示自定義菜單,則根據(jù)鼠標(biāo)光標(biāo)當(dāng)前所處位置的頁面元素生成配置信息,包括: 在監(jiān)測到右鍵點(diǎn)擊操作事件時(shí),判斷鼠標(biāo)光標(biāo)當(dāng)前所處位置是否位于需要顯示自定義菜單的頁面元素的位置; 若是,則確定顯示自定義菜單,根據(jù)鼠標(biāo)光標(biāo)當(dāng)前所處位置的頁面元素生成配置信息。
      3.如權(quán)利要求2所述的方法,其特征在于,所述根據(jù)配置信息生成自定義菜單項(xiàng)以及菜單節(jié)點(diǎn),將生成的自定義菜單項(xiàng)添加到所述菜單節(jié)點(diǎn)中,得到添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單,包括: 根據(jù)配置信息中所指示的菜單項(xiàng)文本和/或菜單項(xiàng)圖標(biāo),生成對應(yīng)的自定義菜單項(xiàng);將生成的自定義菜單項(xiàng)添加到所述菜單節(jié)點(diǎn)中,得到添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單; 其中,所述自定義菜單的寬度值為生成的自定義菜單項(xiàng)中寬度的最大值。
      4.如權(quán)利要求3所述的方法,其特征在于,所述根據(jù)配置信息中所指示的菜單項(xiàng)文本和/或菜單項(xiàng)圖標(biāo),生成對應(yīng)的自定義菜單項(xiàng),包括: 繪制文檔對象模型節(jié)點(diǎn); 根據(jù)文檔對象模型節(jié)點(diǎn)與配置信息中所指示的菜單項(xiàng)文本生成文本節(jié)點(diǎn),和/或根據(jù)文檔對象模型節(jié)點(diǎn)與配置信息中所指示的菜單項(xiàng)圖標(biāo)生成圖標(biāo)節(jié)點(diǎn); 將生成的文本節(jié)點(diǎn)和/或圖標(biāo)節(jié)點(diǎn)構(gòu)成自定義菜單項(xiàng)。
      5.如權(quán)利要求3所述的方法,其特征在于,所述根據(jù)配置信息中所指示的菜單項(xiàng)文本和/或菜單項(xiàng)圖標(biāo),生成對應(yīng)的自定義菜單項(xiàng),包括: 繪制文檔對象模型節(jié)點(diǎn); 根據(jù)配置信息中所指示的菜單項(xiàng)文本和/或菜單項(xiàng)圖標(biāo),并根據(jù)所述文檔對象模型節(jié)點(diǎn),生成自定義菜單項(xiàng); 在所述文檔對象模型節(jié)點(diǎn)中增加子菜單節(jié)點(diǎn),以指示所述生成的自定義菜單項(xiàng)包括子菜單; 根據(jù)配置信息中所指示的子菜單項(xiàng)文本和/或子菜單項(xiàng)圖標(biāo),生成對應(yīng)的各子菜單項(xiàng),得到子菜單; 將所述子菜單與所述生成的自定義菜單項(xiàng)關(guān)聯(lián)。
      6.如權(quán)利要求4或5所述的方法,其特征在于,還包括: 在檢測到鼠標(biāo)進(jìn)入事件時(shí),若所述鼠標(biāo)進(jìn)入事件關(guān)聯(lián)的自定義菜單項(xiàng)包括子菜單,則進(jìn)一步顯示生成的子菜單項(xiàng); 在檢測到鼠標(biāo)離開事件時(shí),將顯示的子菜單項(xiàng)隱藏,并在檢測到點(diǎn)擊操作時(shí),隱藏所述顯示的自定義菜單。
      7.如權(quán)利要求6所述的方法,其特征在于,所述根據(jù)配置信息生成自定義菜單項(xiàng)以及菜單節(jié)點(diǎn),將生成的自定義菜單項(xiàng)添加到所述菜單節(jié)點(diǎn)中,得到添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單,還包括: 禁止將對所述得到的自定義菜單上的鼠標(biāo)操作事件冒泡給該自定義菜單所屬的父節(jié)點(diǎn),所述鼠標(biāo)操作事件包括鼠標(biāo)彈起事件、鼠標(biāo)按下事件、鼠標(biāo)點(diǎn)擊事件中的任一種或多種。
      8.如權(quán)利要求7所述的方法,其特征在于,所述顯示所述添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單之前,還包括: 構(gòu)造自定義菜單邊框的裝飾性節(jié)點(diǎn),以便于在所述顯示所述添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單中包括所述裝飾性節(jié)點(diǎn)。
      9.一種在網(wǎng)頁中實(shí)現(xiàn)自定義菜單顯示的裝置,其特征在于,包括: 生成模塊,用于在監(jiān)測到右鍵點(diǎn)擊操作事件時(shí),若確定顯示自定義菜單,則根據(jù)鼠標(biāo)光標(biāo)當(dāng)前所處位置的頁面元素生成配置信息; 獲取模塊,用于根據(jù)配置信息生成自定義菜單項(xiàng)以及菜單節(jié)點(diǎn),將生成的自定義菜單項(xiàng)添加到所述菜單節(jié)點(diǎn)中,得到添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單; 顯示模塊,用于顯示所述添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單。
      10.如權(quán)利要求9所述的裝置,其特征在于,所述生成模塊包括: 判斷單元,用于在監(jiān)測到右鍵點(diǎn)擊操作事件時(shí),判斷鼠標(biāo)光標(biāo)當(dāng)前所處位置是否位于需要顯示自定義菜單的頁面元素的位置; 生成單元,用于所述判斷單元的判斷結(jié)果為是時(shí),則確定顯示自定義菜單,根據(jù)鼠標(biāo)光標(biāo)當(dāng)前所處位置的頁面元素生成配置信息。
      11.如權(quán)利要求10所述的裝置,其特征在于,所述獲取模塊包括: 菜單項(xiàng)生成單元,用于根據(jù)配置信息中所指示的菜單項(xiàng)文本和/或菜單項(xiàng)圖標(biāo),生成對應(yīng)的自定義菜單項(xiàng); 菜單生成單元,用于將生成的自定義菜單項(xiàng)添加到所述菜單節(jié)點(diǎn)中,得到添加了根據(jù)配置信息生成的所有自定義菜單項(xiàng)的自定義菜單; 其中,所述自定義菜單的寬度值為生成的自定義菜單項(xiàng)中寬度的最大值。
      12.如權(quán)利要求11所述的裝置,其特征在于,所述菜單項(xiàng)生成單元包括: 第一繪制子單元,用于繪制文檔對象模型節(jié)點(diǎn); 第一生成子單元,用于根據(jù)文檔對象模型節(jié)點(diǎn)與配置信息中所指示的菜單項(xiàng)文本生成文本節(jié)點(diǎn),和/或根據(jù)文檔對象模型節(jié)點(diǎn)與配置信息中所指示的菜單項(xiàng)圖標(biāo)生成圖標(biāo)節(jié)占.第一構(gòu)造子單元,用于將生成的文本節(jié)點(diǎn)和/或圖標(biāo)節(jié)點(diǎn)構(gòu)成自定義菜單項(xiàng)。
      13.如權(quán)利要求11所述的裝置,其特征在于,所述菜單項(xiàng)生成單元包括: 第二繪制子單元,用于繪制文檔對象模型節(jié)點(diǎn); 第二生成子單元,用于根據(jù)配置信息中所指示的菜單項(xiàng)文本和/或圖標(biāo),并根據(jù)所述文檔對象模型節(jié)點(diǎn),生成菜單項(xiàng);節(jié)點(diǎn)生成子單元,用于在所述文檔對象模型節(jié)點(diǎn)中增加子菜單節(jié)點(diǎn),以指示所述生成的自定義菜單項(xiàng)包括子菜單; 第三生成子單元,用于根據(jù)配置信息中所指示的子菜單項(xiàng)文本和/或子菜單項(xiàng)圖標(biāo),生成對應(yīng)的各子菜單項(xiàng),得到子菜單; 關(guān)聯(lián)子單元,用于將所述子菜單與所述生成的自定義菜單項(xiàng)關(guān)聯(lián)。
      14.如權(quán)利要求12或13所述的裝置,其特征在于,還包括: 子菜單顯示模塊,用于在檢測到鼠標(biāo)進(jìn)入事件時(shí),若所述鼠標(biāo)進(jìn)入事件關(guān)聯(lián)的自定義菜單項(xiàng)包括子菜單,則進(jìn)一步顯示生成的子菜單項(xiàng); 隱藏模塊,用于在檢測到鼠標(biāo)離開事件時(shí),將顯示的子菜單項(xiàng)隱藏,并在檢測到點(diǎn)擊操作時(shí),隱藏所述顯示的自定義菜單。
      15.如權(quán)利要求14所述的裝置,其特征在于,還包括: 屏蔽模塊,用于禁止將對所述得到的自定義菜單上的鼠標(biāo)操作事件冒泡給該自定義菜單所屬的父節(jié)點(diǎn),所述鼠標(biāo)操作事件包括鼠標(biāo)彈起事件、鼠標(biāo)按下事件、鼠標(biāo)點(diǎn)擊事件中的任一種或多種。
      16.如權(quán)利要求15所述的裝置,其特征在于,還包括: 構(gòu)造模塊,用于構(gòu)造自定義菜單邊框的裝飾性節(jié)點(diǎn),以便于在所述顯示模塊顯示所述添加了根據(jù)配置信息生成 的所有自定義菜單項(xiàng)的自定義菜單中包括所述裝飾性節(jié)點(diǎn)。
      【文檔編號】G06F9/44GK103902258SQ201210568532
      【公開日】2014年7月2日 申請日期:2012年12月25日 優(yōu)先權(quán)日:2012年12月25日
      【發(fā)明者】李晶 申請人:騰訊科技(深圳)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1