Насколько я знаю, это невозможно.
В Firefox я получаю исключение «установка свойства, которое имеет только геттер», IE выдает ошибку, Chrome выдает ошибку, но в Opera это работает (если я назначаю его элементу, а не прототипу)!
Но у вас есть другая проблема. offsetParent не является функцией, поэтому она никогда не будет вызываться как функция, и ваше предупреждение никогда не произойдет. В опере (единственный браузер, который я нашел, где вы могли бы заменить его) вы получаете только функцию обратно.
Однако вы можете добавить новую функцию (будет работать в Firefox, Chrome и Opera, но не в IE, поскольку в IE нет свойства конструктора):
var e = document.getElementById("mydiv"); //Get a div element
//Adds a _offsetParent function to all DIV elements.
e.constructor.prototype._offsetParent=function(){
alert("offset parent called"); return this.offsetParent;
};
e._offsetParent();
Обновление
Читая ваше описание здесь вижу вашу ошибку:
- вы получаете ссылку на объект
называется myInnerContent
- вы удаляете этот объект из DOM при замене содержимого внешнего тега.
- вы пытаетесь получить родителя от старого объекта, который является сиротой и
которые больше не находятся в DOM. IE выдает ошибку, а Firefox - ноль.
У вас уже есть решение на вашей странице: сохраните название объекта. При желании вы можете выбрать обновление глобальной переменной при обновлении содержимого или только обновление innerHTML внутреннего элемента div.