MozTW 討論區

各項 Mozilla 相關軟體與技術討論
現在的時間是 2025-08-05, 23:18

所有顯示的時間為 UTC + 8 小時





發表新文章 回覆主題  [ 20 篇文章 ]  前往頁數 12  下一頁
發表人 內容
文章發表於 : 2006-03-30, 21:48 
離線
頭像

註冊時間: 2006-03-18, 21:46
文章: 394
來自: マカオ
這是一個叫 "Reload" 的套件的程式碼, 這個套件自己弄了一個按鈕, 在按鈕上按右鍵可以重新載入所有分頁, 但是同時又會出現了選單 (平時在工具列上按右鍵時出現的選單)
可不可以幫我改成在按鍵上按右鍵, 但不會出現選單的呢?
因為沒有作者的電郵地址, 也沒有首頁, 找不到作者...
有沒有人可以幫幫我呢..? :cry:


代碼:
function reload(shift, ctrl, alt, button){
var nsIWebNavigation = Components.interfaces.nsIWebNavigation;

   //ctrl and alt passed for completeness and to make any subsequent upgrades easier
   if(shift){   //Reload pages from server
      switch(button){
      case 0:
         //Left Button - Reload page
         BrowserReloadSkipCache();
         break;
      case 1:
         //Middle Button - Load page in new tab
         var url = window._content.document.location.href;
         var tab = gBrowser.addTab("about:blank");
         gBrowser.selectedTab = tab;
         gBrowser.loadURIWithFlags(url, nsIWebNavigation.LOAD_FLAGS_BYPASS_PROXY | nsIWebNavigation.LOAD_FLAGS_BYPASS_CACHE, null, null);
         break;
      case 2:
         //Right Button - Reload all tabs
         var l = gBrowser.mPanelContainer.childNodes.length;
         for(var i = 0; i < l; i++) {
            var b = gBrowser.getBrowserAtIndex(i);
            try {
               b.reloadWithFlags(nsIWebNavigation.LOAD_FLAGS_BYPASS_PROXY | nsIWebNavigation.LOAD_FLAGS_BYPASS_CACHE);
            } catch(e) {}
         }
         break;
      default:
         BrowserReloadSkipCache();
         break;
      }
   }else{   //Reload pages from cache
      switch(button){
      case 0:
         //Left Button - Reload page
         BrowserReload();
         break;
      case 1:
         //Middle Button - Load page in new tab
         var tab = gBrowser.addTab(window._content.document.location.href);
         gBrowser.selectedTab = tab;
         break;
      case 2:
         //Right Button - Reload all tabs
         gBrowser.reloadAllTabs();
         break;
      default:
         BrowserReload();
         break;
      }
   }
}


附加檔案:
1.jpg [61.07 KiB]
被下載 654 次
回頂端
Mozilla/5.0 (Windows; U; Win 9x 4.90; zh-TW; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2006-03-30, 22:31 
離線
頭像

註冊時間: 2005-02-24, 19:15
文章: 1037
來自: Taiwan
也許該查查 event.preventBubble(); 的用法

_________________
Amauds's Firefox
曾經妳以為最可靠的依賴;其實從未曾真實的存在過。
圖檔圖檔


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2006-03-31, 17:53 
離線
頭像

註冊時間: 2006-03-18, 21:46
文章: 394
來自: マカオ
我知道用 preventDefault(), 但就是不會用才找人幫忙吧... :(
我沒有學過 javascript...


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2006-03-31, 21:11 
離線
頭像

註冊時間: 2005-02-24, 19:15
文章: 1037
來自: Taiwan
mercichao 寫:
我知道用 preventDefault(), 但就是不會用才找人幫忙吧... :(
我沒有學過 javascript...

我的意思是有關介面佈建的 XUL 檔,
這個套件一定有某個檔其包含著按鈕的各項細節(外型、位置、啟動機制等...)
它可能是 javascript 檔,也可能是 XUL 檔,
當按鈕放置於工具列之上時,觸發事件不只是傳遞給按鈕,也會傳給工具列,
若是沒有通知系統已將事件處理完畢,則該事件將持續發生直到某個元件通知系統事件結束。

根據你的描述,按鈕被以右鍵觸發後,而工具列的選單也會被觸發,
知道其中的關聯性了嗎?

_________________
Amauds's Firefox
曾經妳以為最可靠的依賴;其實從未曾真實的存在過。
圖檔圖檔


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2006-03-31, 21:27 
離線
頭像

註冊時間: 2006-03-18, 21:46
文章: 394
來自: マカオ
Amauds 寫:
我的意思是有關介面佈建的 XUL 檔,
這個套件一定有某個檔其包含著按鈕的各項細節(外型、位置、啟動機制等...)
它可能是 javascript 檔,也可能是 XUL 檔,
當按鈕放置於工具列之上時,觸發事件不只是傳遞給按鈕,也會傳給工具列,
若是沒有通知系統已將事件處理完畢,則該事件將持續發生直到某個元件通知系統事件結束。

根據你的描述,按鈕被以右鍵觸發後,而工具列的選單也會被觸發,
知道其中的關聯性了嗎?

這個我也當然知道啦...=.="
我當然明白它的原理, 也知道我大概要做些甚麼, 就是不知要把程式碼修改成怎麼樣子嘛...
我的意思是, 我沒學過 javascript, 不會用語法加入這一個小小的功能, 有哪一位大大肯抽少少時間可以幫我適當地加這麼一小小的一句 preventDefault() 上去... :cry:


回頂端
Mozilla/5.0 (Windows; U; Win 9x 4.90; zh-TW; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2006-03-31, 21:39 
離線
頭像

註冊時間: 2005-02-24, 19:15
文章: 1037
來自: Taiwan
mercichao 寫:
我的意思是, 我沒學過 javascript, 不會用語法加入這一個小小的功能, 有哪一位大大肯抽少少時間可以幫我適當地加這麼一小小的一句 preventDefault() 上去... :cry:

這個套件只有這麼一個
代碼:
function reload(shift, ctrl, alt, button){ ... }
函數而已嗎?

_________________
Amauds's Firefox
曾經妳以為最可靠的依賴;其實從未曾真實的存在過。
圖檔圖檔


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2006-03-31, 21:49 
離線
頭像

註冊時間: 2006-03-18, 21:46
文章: 394
來自: マカオ
引言回覆:
這個套件只有這麼一個
代碼:
function reload(shift, ctrl, alt, button){ ... }
函數而已嗎?

是的, 那些程式碼屬於一個叫 reload.js 的檔案 (裏面的程式碼只有上述這麼多),
有另一個檔案呼叫它的:

reloadOverlay.xul
代碼:
<?xml version="1.0"?>

<overlay id="reloadOverlay"
   xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
   
   <script type="application/x-javascript" src="chrome://reload/content/reload.js" />
   
   <toolbox id="navigator-toolbox">
      <toolbar id="nav-bar">
         <toolbarbutton
               onclick="reload(event.shiftKey, event.ctrlKey, event.altKey, event.button);"
               id="reload-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
               label="Reload" tooltiptext="Reload current page" context=""/>
      </toolbar>
   </toolbox>
</overlay>


套件的網址:
https://addons.mozilla.org/extensions/m ... 10&id=1410


回頂端
Mozilla/5.0 (Windows; U; Win 9x 4.90; zh-TW; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2006-03-31, 22:26 
離線
頭像

註冊時間: 2005-08-25, 19:59
文章: 1210
來自: 幻境地帶
試試 XUL 裡頭把 event.preventBubble(); 附加在 onClick 事件的 reload(...); 處理後...
像這樣...
onclick="reload(event.shiftKey, event.ctrlKey, event.altKey, event.button); event.preventBubble();"


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2006-04-01, 08:36 
離線
頭像

註冊時間: 2006-03-18, 21:46
文章: 394
來自: マカオ
行了耶~! :lol:
謝謝您喔~~ :idea:


回頂端
Mozilla/5.0 (Windows; U; Win 9x 4.90; zh-TW; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2006-04-01, 17:44 
離線
頭像

註冊時間: 2006-03-18, 21:46
文章: 394
來自: マカオ
我還有一個問題要麻煩大大幫忙的.. :oops:
有甚麼辦法才能令上述程式碼中, reload(...) 這個函數每當分頁數是 1 , currentPage 是 about:blank 的時候就不生效:?:

(小弟還差這一步就能把這個套件變完美了 :twisted: )


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2006-04-01, 20:13 
離線
頭像

註冊時間: 2005-08-25, 19:59
文章: 1210
來自: 幻境地帶
試試在 reload() 函式的一開頭加入...
代碼:
if (gBrowser.currentURI.spec == "about:blank") return;


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2006-04-01, 21:53 
離線
頭像

註冊時間: 2006-03-18, 21:46
文章: 394
來自: マカオ
嗯~ 這個行得通, 那這樣呢~?
引言回覆:
if (分頁數目 == 1 而且 gBrowser.currentURI.spec == "about:blank") return;

又應該怎麼寫 ? :oops:


回頂端
Mozilla/5.0 (Windows; U; Win 9x 4.90; zh-TW; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2006-04-01, 23:11 
離線
[網站管理員]
頭像

註冊時間: 2004-09-27, 09:24
文章: 1685
if (分頁數目 == 1 && gBrowser.currentURI.spec == "about:blank") return;

分頁數目我不知道要怎麼寫orz

_________________
korp + korp 中文站(沒精神更新)


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2006-04-02, 00:52 
離線
頭像

註冊時間: 2005-08-25, 19:59
文章: 1210
來自: 幻境地帶
要抓 Tabs,我 IE Tab 裡是這樣子列舉出來的:
代碼:
var mTabs = gBrowser.mTabContainer.childNodes;
for(var i = 0 ; i < mTabs.length ; i++) {  // 巡覽每個 mTabContainer 的 childNodes
   if (mTabs[i].localName == "tab") {  // 如果 mTabs[i] 為 Tab 時,做XXX...
............
   }
}

不知有沒有更簡單能取 Tabs 數目的方法...@@


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2006-04-02, 09:37 
離線
頭像

註冊時間: 2006-03-18, 21:46
文章: 394
來自: マカオ
我把其中一段程式碼:
引言回覆:
if (e.attrName == 'disabled') {
   stopButton.setAttribute('disabled', 'false');
}


改成為這樣:
引言回覆:
var mTabs = gBrowser.mTabContainer.childNodes;
for(var i = 0 ; i < mTabs.length ; i++) {

   if (e.attrName == 'disabled' && mTabs[i].localName == "tab") {
     stopButton.setAttribute('disabled', 'false');
   }
}


但無論分頁數目是否 1, stopButton.setAttribute() 還是會執行 (測試過跟 e.attrName == 'disabled' 這個判斷條件無關)
是否我有甚麼地方會錯意呢?


回頂端
Mozilla/5.0 (Windows; U; Win 9x 4.90; zh-TW; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
 個人資料  
引用回覆  
顯示文章 :  排序  
發表新文章 回覆主題  [ 20 篇文章 ]  前往頁數 12  下一頁

所有顯示的時間為 UTC + 8 小時


誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 2 位訪客


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
Powered by phpBB® Forum Software © phpBB Group
正體中文語系由 竹貓星球 維護製作
© moztw.org, Mozilla Foundation
MozTW,Mozilla 台灣社群