ФОРУМЪТ НА ШУМЕН
http://www.forumshumen.com/forum/

JS: Въпрос prototype
http://www.forumshumen.com/forum/viewtopic.php?f=15&t=1310
Страница 1 от 1

Автор:  tolito [ 04 Дек 2007 23:46 ]
Заглавие:  JS: Въпрос prototype

Я сега да ви питам щото аз не можах да го измисля.

Цел:

Искам да добавя в един обект един си мои метод примерно test().
Обаче обекта не е някъв си обект ами си е точно този дето се ползва за AJAX бози в IE 6 дето се зарежда с new ActiveXObject( ms....xml..http ) нам ко си :)

И така след като си заредя един XML и той ми отива в http.responseXML

Като направя една проверка alert( ActiveXObject instance of http.responseXML ); Ми дава true.

И значи ще му пиша вече новия метод

АctiveXObject.prototype.test = function(){ alert('works'); };

Принципно ми се видя малко тъпо но викам да пробвам обаче вообще не сработва.

При FF е лесно xml-a ти е от клас XMLDocument добавяш си метода и всичко ток. Ама под ИЕ не е така. След това пробвах безброй начини да го ундурмисам ама не става.

Накрая нацелих единственния начин при който не ми гърми грешки

Object.prototype.test = function(){ alert('works'); };

само дето не ми алерт-ва нищо. Под ФФ естествено работи перфект :)

И нз не че с това свършва света но си наумих да го направя по тоя начин и ся като не стана само под ИЕ и много ме дразни.

Някой да налее малко акъл ако намери решение.

Приложението му е че искам да си добавя един клас към xml-a за работа с xpath нещо от сорта на:

http.reponseXML.xpath('/root/config');

и квото друго се сетя в последствие :)

Автор:  PaSsWd [ 14 Дек 2007 12:00 ]
Заглавие: 

С две думи е отговора - не можеш :) Мързи ме да обяснявам, но накратко - ActivXObject не е част от дом модела на ИЕ, докато ХТТПРеяуст си е част от дом модела на ФФ и затова успяваш да подкараш нещатата там. Тъй като и на мене ми стана доста интерсно, коментирах с колеги които пишат МС бла бла-та и се опитаха да ме убедят, че има начин с разни враппер длл-та ако си напишеш линкнати по незнам си къв начин и т.н. и т.н :lol:

Опитай се с рефлектион да си принтнеш http.responseXML обекта да видиш, че въобще не е наследник на Object базовия клас на ДОМ :)

Код: Избери целия код
function showObject(o)
   {
      var s = "";
      for(var i in o)
         s += i + ": " + o[i] + "\n";
      alert(s);
   }



Цитат:
Като направя една проверка alert( ActiveXObject instance of http.responseXML ); Ми дава true.


дам това си е напълно в реда на нещатата - реално това си е активь обект, но пак казвам НЕ и наследник на Обжецт в ДОМ :)

Поздрави :)

П.П. Пфу .. тука кирилица там латиница за запазените думи, но си кадърно момче ще ме разбереш :lol:

Автор:  tolito [ 17 Дек 2007 21:22 ]
Заглавие: 

Тенкс че си писъл аз сега видях ама работата е че нищо няма да стане :) аз просто имах великата идея да го направя така ама ко да прайш ИЕ ем хубаво ема та дразни :)

Страница 1 от 1 Часова зона: UTC + 2 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/