![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 Andasan ![]()
![]() |
在IE8可以顯示obj.toppx 但是在IE10卻出現undefined 不知道要修改哪裡? 感謝
本篇文章發表於2013-10-28 10:04
|
1樓 |
你的obj是什麼?
document物件是沒有toppx和leftpx屬性
本篇文章回覆於2013-10-28 14:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓
作者回應
Andasan ![]() |
大大您好
我的obj是由<td id=childmenu style='background-image: url(images/headline_bg.png)' height='30' width='80' align='center' onmouseover='creatlist(this)' > 呼叫 感謝
本篇文章回覆於2013-10-29 08:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
3樓 |
所以說document物件是沒有toppx和leftpx屬性(實際上我也沒看過這種屬性)
改成和等號左邊一樣就好啦
本篇文章回覆於2013-10-29 09:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
4樓 |
要不要考慮用jQuery寫
本篇文章回覆於2013-10-29 14:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
5樓
作者回應
Andasan ![]() |
這樣一來,不僅IE10無法顯示,連原本可以的IE8都無法顯示了
alert(obj.style.top);<==IE8、IE10出現空白 alert(obj.toppx);<==IE8正常、IE10出現undefined
本篇文章回覆於2013-10-29 15:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
6樓
作者回應
Andasan ![]() |
抱歉,我發現toppx是我的自訂義欄位。
"<td id=childmenu toppx='100' leftpx='75' height='30' width='80' align='center' onmouseover='creatlist(this)' ><span style='font-size:12pt;color:#FFFFFF'><a href=#>"+mainitem[j]+"</a></span></td>"; 但是為什麼IE8可以讀得到,但是IE10就不行。 語法有變嗎? 感謝
本篇文章回覆於2013-10-29 15:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
7樓 |
直接在標籤內自行定義的屬性...只要不在HTML標準規範當中,
就不會被認定為有效屬性...(僅有舊版的IE...相容) 微軟一直以來, 都是以老大自居, 不肯配合W3C, 然而, 現實的殘酷, 逼的微軟最後還是向W3C妥協了 (就連原本在舊版環境中, 很多大小寫可以無視的部份, 也都變成必須區分大小寫了) ============================================== 不把系統整個改寫掉的話(或是換個選單的話), 比較簡單的方式是...輸出了那一堆html標籤之後, "<td id=childmenu toppx='100' leftpx='75' height='30' width='80' align='center' onmouseover='creatlist(this)' ><span style='font-size:12pt;color:#FFFFFF'><a href=#>"+mainitem[j]+"</a></span></td>"; 另外再加上 <script> document.getElementById('childmenu').toppx = 100; </script> 這樣子可以讓新版IE, FireFox, Chrome, 都知道你的childmenu有著toppx的屬性 (不過大前提是 childmenu 這個ID名稱不可以在網頁中重複出現...) ------------------------- 小小題外話... 微軟的asp.net在當初1.1版時期, 就是把自行定義的屬性直接加在html標籤內, 而之後在2.0版的時期, 全數改成在script內, 另外加上自定屬性... (也就是說, 連微軟都是這麼做的.................... =.=)
本篇文章回覆於2013-10-29 16:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
8樓 |
試試看getAttribute
參考 https://www.google.com.tw/search?client=firefox-a&hs=sW6&rls=org.mozilla%3Azh-TW%3Aofficial&q=getattribute+custom+attribute&oq=getAttribute+custom+a&gs_l=serp.3.0.0i30.2390.11419.0.12688.11.10.1.0.0.0.304.1923.1j6j2j1.10.0....0...1c.1.29.serp..1.10.1754.Al7sPBORauE
本篇文章回覆於2013-10-29 16:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
9樓
作者回應
Andasan ![]() |
我嘗試
alert(document.getElementById(obj).toppx); 卻出現 錯誤: 無法取得未定義或 Null 參考的屬性 'toppx' 不論在IE8或IE10都不行 感謝
本篇文章回覆於2013-10-29 17:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
10樓
作者回應
Andasan ![]() |
測試到最後
alert(document.getElementById('childmenu').getAttribute('toppx'));<===這樣是可以的 但是 alert(document.getElementById(obj).getAttribute('toppx'));<===這樣卻是不行 因為我的選單是 childmenu0 childmenu1 childmenu2 ... 所以使用creatlist(this),this代表childmenu*本身,這樣不行嗎? 不知要怎麼改。 感謝
本篇文章回覆於2013-10-29 17:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
11樓
最有價值解答
迷路 ![]() ![]() |
你呼叫時用this
那obj就等同document.getElementById(該物件的ID),就算沒有設定ID也一樣 所以不是 alert(document.getElementById(obj).getAttribute('toppx')); 是 alert(obj.getAttribute('toppx'));
本篇文章回覆於2013-10-29 18:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |