Проблема с прототипами обьектов в IE
Всем привет! Возникла проблема с JS во всеми любимом эксплорере.
Добавляю через прототип функции к обьекту Object таким образом: Object.prototype.some_func = function() { alert('it works!') } Теперь эта ф-я some_func по должна появиться во всех объектах. Для удобства работы, некоторые ф-и помещаю в общий обьект: var test_obj = { func1:function(){}, ... funcN:function(){ this.target_obj = document.getElementById('some_id') alert( typeof( this.target_obj.some_func ) ) // выводит "function" } } так вот test_obj.funcN() и выводит function. В FF, в Chrome, в Opera. Но не в IE. в IE у target_obj почему-то нет ф-и some_func. В чем косяк то может быть!? |
В IE DOM-элементы не являются потомками Object.
|
Вот блин... Ларчег то просто открывался.
|
но... при этом в IE alert(typeof(document.getElementById('some_id'))) выдает 'object'
|
У него и alert(typeof alert) выдает object :)
|
Понятно! Буду искать другие пути.
|
Приемлемого способа добавления метода всем DOM-нодам в ИЕ нет.
|
Ну можно через какую нить промежуточную функцию реализовать.
(как это сделано в фреймворках) и совместить заодно с умным селектором(типа Sizzle). В общем, с чего начали к тому и вернулись. Я просто пытаюсь уйти от фреймворков, и ограничиваться небольшим кол-вом самописных функций... |
Часовой пояс GMT +3, время: 14:21. |