MozTW 討論區 https://forum.moztw.org/ |
|
IE 上從 prototype 新增函式的方法? https://forum.moztw.org/viewtopic.php?f=13&t=20967 |
第 1 頁 (共 1 頁) |
發表人: | GlinX [ 2007-11-17, 00:44 ] |
文章主題 : | IE 上從 prototype 新增函式的方法? |
在 Firefox 上 (或者說遵守標準的瀏覽器) 要擴充原本 JavaScript 非核心物件的函式 可以像以下的例子這樣做: 代碼: HTMLFormElement.prototype.newFunc=function(){
..... }; document.forms[0].newFunc(); 但是在 IE 上就會出錯 (/‵Д′)/~ ╧╧ 說什麼 HTMLFormElement 未定義... 試了一下,連 Event 跟 Window 這些物件都未定義...(靠么~那平常怎麼用的?) 請問有人知道怎麼樣在 IE6 上做出同樣的功能嗎? 感謝 m(_ _)m |
發表人: | kourge [ 2007-11-17, 14:34 ] |
文章主題 : | |
IE 並不提供 DOM 物件的 prototype。 像 Prototype.js 和 jQuery 之所以可以提供這種 method addon 是因為那些 DOM 物件都是他們的函式傳回來的,而他們在傳回來之前會直接把 method 設定和加上去,而不是用 prototype。這在 IE 好像叫做 expando。 比如說: var x = document.forms[0]; x.newFunc = function() { // ... }; |
發表人: | GlinX [ 2007-11-17, 15:10 ] |
文章主題 : | |
kourge 寫: IE 並不提供 DOM 物件的 prototype。
像 Prototype.js 和 jQuery 之所以可以提供這種 method addon 是因為那些 DOM 物件都是他們的函式傳回來的,而他們在傳回來之前會直接把 method 設定和加上去,而不是用 prototype。這在 IE 好像叫做 expando。 比如說: var x = document.forms[0]; x.newFunc = function() { // ... }; 感謝回應^^ 這有點像 Prototype 裡的 Object.extend 方法... 唉...本來就討厭 IE 了 網頁應用寫久後更是覺得 IE 怎麼不快點去死一死... 不遵守標準+特立獨行+更新超慢 |
發表人: | kourge [ 2007-11-18, 01:11 ] |
文章主題 : | |
GlinX 寫: kourge 寫: IE 並不提供 DOM 物件的 prototype。 像 Prototype.js 和 jQuery 之所以可以提供這種 method addon 是因為那些 DOM 物件都是他們的函式傳回來的,而他們在傳回來之前會直接把 method 設定和加上去,而不是用 prototype。這在 IE 好像叫做 expando。 比如說: var x = document.forms[0]; x.newFunc = function() { // ... }; 感謝回應^^ 這有點像 Prototype 裡的 Object.extend 方法... Prototype 內部做 expando 就正是利用 Object.extend 的... |
第 1 頁 (共 1 頁) | 所有顯示的時間為 UTC + 8 小時 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |