Newsgroup: it.comp.lang.javascript
Titolo: Re: IE vs Object.prototype

 sfanculato, perche' DivReference.setClassArray => undefined.
Secondo me la risposta sta nel fatto che:
alert(document.getElementById("identificatore") instanceof Object) in
firefox dà true, mentre in explorer dà false.
Il bello è che typeof per entrambi dà object, evidentemente per explorer
document.getElementById("identificatore") è un tipo oggetto senza funzione
costruttore (e infatti
document.getElementById("identificatore").constructor su firefox da
HTMLDivElement mentre su explorer da undefined).
La prossima domanda sarà (Matrix docet): qual'è la funzione costruttore di
document.getElementById("identificatore")? imho, conoscendo la funzione
costruttore potrai applicarci il prototype.
Robe'
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

  N  O  N    C  I    C  R  E  D  O  ! ! ! ! ! !
Vedo però che nessuno ha continuato il thread, peccato perché sarebbe
stato interessante capire come poter applicare la proprietà prototype agli
elementi di una pagina.
imho comunque, torno a ribadire che il problema riguarda la funzione
costruttore: per explorer Object.prototype non da i risultati da te
sperati perché Object() (per lui) non è la funzione costruttore dei tag
html, quindi il tuo metodo setClassArray esiste ma non per l'oggetto
document.getElementById("riferimento").
per firefox invece, è il contrario... i div sono oggetti HTMLDivElement
che non sono altro che istanze della classe (ops, funzione costruttore)
Object(), e infatti:
HTMLDivElement.prototype.setClassArray = function(a) {
	this.setAttribute('title',a.join('-'));
};
// funzia su firefox
Ho provato anche a creare delle proprietà (prototype, contructor e
prototype.constructor) per l'oggetto document.getElementById("nomeID"), in
questo modo:
<script>
var mioArray = ["esempio","1"];
function cambia() {
	riferimento.setClassArray(mioArray);
}
window.onload=function() {
riferimento=document.getElementById("obiettivo");
riferimento.prototype=Object.prototype;
riferimento.constructor=Object.constructor;
riferimento.prototype.constructor=Object.prototype.constructor;
alert("Prototype:\n"+riferimento.prototype+"\n---------------------\nConstructor:\n"+riferimento.constructor+"\n---------------------\nPrototype.constructor:\n"+riferimento.prototype.constructor);
	riferimento.prototype.setClassArray = function(a) {
		this.setAttribute('title',a.join('-'));
	};
}
</script>
<div id="obiettivo">
testo
</div>
<br><br>
<a href="#" onclick="cambia();">cambia</a>
funziona su firefox ma non su explorer (si è punto e a capo). qualcuno del
gruppo ha qualche idea?


 ad usare dei succedanei schifosetti ma funzionanti.
Appena hai informazioni scrivi pure sul ng che può essere utile a tanti
(me compreso).


 Se ne esce in qualche modo, oppure devo cominciare a piangere?
Piangi.
-- 
~ "The demo effect, you don't expect"

 costruttore potrai applicarci il prototype.
Sfortunatamente no. IE non lo rende possibile, in quanto la "funzione
costruttore" non è resa pubblica.
-- 
~ L'intelligenza artificiale non può battere la stupidità naturale.
(Lemma di Sullivan)

 XMLdata ha senso una cosa come XMLdata.createElement() ...
Direi.. Se XMLdata è un XMLDocument, ovviamente. Ma un'occhiata alla
reference, no? :P
-- 
~ ..ma in effetti il concetto di WYSIWYG (quello che vedi è quello che
ottieni) si applica ai computer malissimo, così come si applica alle
donne... (The Real Programmer)