MozTW 討論區
https://forum.moztw.org/

請教 element.setAttributeNS 的用法
https://forum.moztw.org/viewtopic.php?f=18&t=28851
1 頁 (共 1 頁)

發表人:  bootleq [ 2009-11-27, 17:26 ]
文章主題 :  請教 element.setAttributeNS 的用法

我對不明白 xml namespace 感到一籌莫展……
附檔用一個 xul 文件為例子,抱歉請用 Firefox 測試。
附加檔案:
檔案註釋: testcase,可以用 Firefox 開啟。
xul_window_title.zip [649 Bytes]
被下載 301 次


xul:window 元素有一個 title 屬性,用來改變視窗顯示的標題:
https://developer.mozilla.org/en/XUL/window#a-title
我的目的就是「動態改視窗標題」,
範例檔案的 Btn 1, Btn 2 都是執行 setAttribute,跑起來一如預期,視窗標題也會變。
但不解的是把滑鼠移到第一行的 <html:p> 時,會看到 tooltip 文字跳出來。

以我的知識,不知是否為 Bug 257780 相似情況,title 被錯誤地用作 tooltip
https://bugzilla.mozilla.org/show_bug.cgi?id=257780

而 html 元素在沒有 title 時,應該找相關父元素的 title 來用(倒是可以設 title=" " 避免沿用),但是 window 不是 html 元素啊。

第一個問題
title 的值可以用 element.setAttribute('title', value) 設定。
在此用 element.setAttributeNS(namespace, 'title', value) 是否更明確指出我要設的是 xul:title?

第二個問題
嘗試按 Btn 3, 4, 5, 6 都無法改變視窗標題,我是不是 namespace 參數根本寫錯了?
開 Firebug 發現這些 Btn 都會讓 window 元素多出 title 屬性、甚至複數的 title 屬性……
而執行 win.hasAttributeNS(ns.xul, 'title');(變數請見原始碼)時,只有 Btn 5, 6 為 true,
執行 win.hasAttribute('title'); 則剩下 Btn 5 結果為 true。

我的理解是(Btn 1, 2, 5)setAttributesetAttributeNS(ns.xul, ...) 相同,都成功設了 xul:title 這個屬性;然而視窗標題都沒變,實在不解。

註:應該不是 xul window 的 bug,我把按鈕換成修改 button 元素的 label 值,結果也是類似。

發表人:  JackieKu [ 2009-12-27, 23:26 ]
文章主題 :  Re: 請教 element.setAttributeNS 的用法

我稍微測試一下
似乎是Bug 257780描述的問題類似
我嘗試在xul:window元素直接加上title="foo"
滑鼠移到html:p還是會看到tooltip

1 頁 (共 1 頁) 所有顯示的時間為 UTC + 8 小時
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/