MozTW 討論區

各項 Mozilla 相關軟體與技術討論
現在的時間是 2024-04-19, 13:27

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





發表新文章 回覆主題  [ 5 篇文章 ] 
發表人 內容
文章發表於 : 2009-09-30, 09:42 
離線

註冊時間: 2009-09-21, 19:22
文章: 7
(一)
當我alert(this)

會出現
object XULElement

告訴我這是一個xul的object.

但是要怎麼知道這是xul element中的那一種物件

像是event我可以 alert(event.type) 來得知這是那一種event

相對的應該有方法知道這是那一種物件吧 this.name?? 但是是undefined

(二)
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("mousedown", true, true, window,
0, 0, 0, 0, 0, false, false, false, false, 1, null);

var cb = document.getElementById("content");

//cb.dispatchEvent(evt);
//cb.contentWindow.dispatchEvent(evt);
//window.content.document.defaultView.dispatchEvent(evt);


上面的code是我想要在視窗中送出模擬中鍵的event但是總是失敗 應該是我dispatchEvent的地方有錯

可是也找不到解答


以上兩個問題 感恩~~~


回頂端
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008101315 Ubuntu/8.10 (intrepid) Firefox/3.0.12
 個人資料  
引用回覆  
文章發表於 : 2009-09-30, 11:06 
離線

註冊時間: 2009-09-21, 19:22
文章: 7
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("mousedown", true, true, window,
0, 0, 0, 0, 0, false, false, false, false, 1, null);

var cb = document.getElementById("content");

cb.dispatchEvent(evt);

說錯關於 dispatchEvent 的地方似乎沒有錯 因為我開啟autoscrolling mode
再來在視窗上面按中鍵會出現 autoscrolling 的icon 然後就可以移動網頁的位置

之後我將 dispatchEvent 每隔2秒自動dispatch一次 , 再開啟autoscrolling mode出現icon後 
過兩秒後會因為收到中鍵的event 那個icon就位自動消失 autonscrolling mode也會取消

問題是為啥可以取消mode 卻不能以送event的方式開啟autoscrolling mode??


回頂端
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008101315 Ubuntu/8.10 (intrepid) Firefox/3.0.12
 個人資料  
引用回覆  
文章發表於 : 2009-09-30, 11:08 
離線

註冊時間: 2009-09-21, 19:22
文章: 7
...還是dispatch的地方有問題??

因為我在錯誤的地方dispatch event??

然後之所以會取消autoscrolling mode 是因為不論在哪裡按中鍵都都會取消 mode

而要開啟autoscrolling mode是要再正確的地方dispatch...??


回頂端
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008101315 Ubuntu/8.10 (intrepid) Firefox/3.0.12
 個人資料  
引用回覆  
文章發表於 : 2009-09-30, 22:50 
離線

註冊時間: 2006-08-12, 20:34
文章: 24
來自: 台中,台灣
A1. 以下是 XUL element 通用的屬性 (attribute) 列表
https://developer.mozilla.org/en/XUL_element_attributes
我想 class 這個屬性應該是您要的。

A2.
1. 這是 contentWindow 這個性質 (property) 的說明
https://developer.mozilla.org/en/XUL/Property/contentWindow
請注意 window object in the element 這句
如果寫 cb.contentWindow,取得是 cb 「裡」的視窗物件,cb 是父,視窗是子
若 cb 本身是個 Frame 或 iFrame,這是 OK 的,
但如果要的是包含 cb 的那個視窗,並不能這樣寫

2. 這是 MDC 針對 dispatchEvent 的說明
https://developer.mozilla.org/En/DOM/Element.dispatchEvent
其實百分之八九十大同小異,但請注意:
initMouseEvent 的 type 建議改為 click (點擊一次),mousedown是指滑鼠按下後都沒放開
我不知道這會不會是問題的關鍵所在

3. 單就您的程式來說,只是送出中鍵事件,
一旦使用者本身沒將 FX 進階選項的 auto scroll mode 打勾,就算中鍵事件有送出也不會出現 icon
若要用程式開啟 auto scroll mode,得先取得 browser 物件或 tabbrowser 物件
這可利用 getBrowserForDocumentgetBrowserAtIndexgetBrowserForTab 的 method 來達成
然後將其 autoscroll 屬性設為 true,之後再送出中鍵事件即可出現 icon

4. 這是 XUL 說明總表,有物件、屬性、性質、方法等,值得參考
https://developer.mozilla.org/en/XUL_Reference

5. 此外,這種跟程式開發有關的應該到特別議題 -> 程式開發討論區去發問,會比較容易得到回應
擴充套件討論區比較偏向於聊使用面而非開發面 ^ ^"


回頂端
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.3) Gecko/20090910 Ubuntu/9.04 (jaunty) Shiretoko/3.5.3
 個人資料  
引用回覆  
文章發表於 : 2009-10-01, 10:11 
離線

註冊時間: 2005-01-13, 15:50
文章: 4
首先 : 感恩樓上 學到很多


但是我現在想要做的是 當user mousedown 超過1秒則自動進入autoscrolling mode

所以我要送一個mouseup 將之前的 mousedown up起來

此時再送一個中鍵mousedown 才會進入autoscrolling mode 但是 ..就是一直辦不到..

我有去trace browser.xml 裏面有開啟 scrolling mode 的 function startScroll(event);

此function 中有一行
this._scrollingView = event.originalTarget.ownerDocument.defaultView;
我使用 alert(event.originalTaget.nodeName); 會出現html 的標籤如 DIV 之類的

但是假若我自己送中鍵event alert(event.originalTaget.nodeName); 會變成 xul element

所以我覺得我dispatch的地方錯誤了,

再來我想將之前的mousedown 送一個mouseup 這點也一直稿不出來=.=

謝謝~~

還有可以幫我把文章轉過去嘛...感恩謝謝您


回頂端
Mozilla/5.0 (X11; U; Linux i686; zh-TW; rv:1.9.0.3) Gecko/2008101315 Ubuntu/8.10 (intrepid) Firefox/3.0.12
 個人資料  
引用回覆  
顯示文章 :  排序  
發表新文章 回覆主題  [ 5 篇文章 ] 

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


誰在線上

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


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

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