View Full Version : [JS] Creazione dinamica di plugin su Firefox
ilsensine
14-09-2007, 16:00
Su ie, per creare un plugin dinamicamente da Javascript è sufficiente un new ActiveXObject(<obj name>), su FF come si fa?
L'oggetto Components
http://developer.mozilla.org/en/docs/Components_object
non va bene in quanto è praticamente precluso ai JS di pagine web.
Idee?
ilsensine
16-09-2007, 17:01
mmm tutti lo osannano, ma appena provi a fare una BANALISSIMA domanda...:D
Ma cosa intendi per creazione dinamica?
E cosa intendi per plugin?
Firefox ha estensioni non plugin.
ilsensine
17-09-2007, 11:40
Sì che li ha, il plugin per Flash ad esempio.
Fai conto che devi creare da JS una istanza di flash, non associata a nessuna parte della pagina (quindi non con un tag <object> dentro la pagina o simili), come si fa?
Ah quei plugin intendi, si hai ragione allora scusami.
Per capirci, te cosa hai intenzione di fare? perchè vorresti creare un'"istanza" di flash senza applicarlo alla pagina?
ilsensine
17-09-2007, 11:56
Non devo creare una istanza di flash, devo creare un altro plugin per invocare dei metodi per ottenere delle informazioni.
mmmm non ti seguo...mi sa che non so aiutarti.
Ma informazioni di che tipo? Sul plugin? Non ci sono metodi apposta per avere informazioni dal plugin?
ilsensine
17-09-2007, 12:20
Facciamola semplice: come faresti a creare da javascript una istanza di Flash? Risolto questo, ho risolto il mio problema.
Per esempio, con Components è possibile:
http://developer.mozilla.org/en/docs/Components.Constructor
ma non si può usare Components da pagine web, in quanto ti da accesso praticamente a tutti gli oggetti xpcom.
ilsensine
17-09-2007, 13:15
Ok una pezza l'ho trovata, passando però per un orrendo hack. Se hai qualche idea per ripulirlo...
function doit()
{
str = "<object id=\"__test_object\" [ecc]>/<object>"
div = document.createElement("div");
div.innerHTML = str;
// Questa riga e' necessaria, altrimenti l'oggetto non viene creato.
// nella pagina non viene visualizzato nulla,
// in quanto width e height dell'oggetto sono 0.
document.body.appendChild(div);
obj = document.getElementById("__test_object");
// faccio quello che devo fare con l'oggetto...
document.body.removeChild(div);
}
Hai provato a creare direttamente l'elemento <object> con createElement senza passare per un div e quindi senza aggiungerlo alla pagina?
ilsensine
17-09-2007, 13:21
/me ignorante
Come intendi esattamente?
ilsensine
17-09-2007, 13:24
intendi createElement("object")? Poi i parametri come li imposto (in particolare type= )?
object=document.createElement("object");
object.setAttribute(attributo,valore);
.
.
object.setAttribute(attributo,valore); ecc ecc
A quel punto object sarà a tutti gli effetti l'oggetto DOM dell'elemento <object>
(in pratica come hai fatto prima per creare il div)
A quel punto forse, e ripeto forse, lo puoi utilizzare per il tuo scopo senza averlo dovuto aggiungere necessariamente alla pagina.
ilsensine
17-09-2007, 13:31
Ho provato, la appendChild è comunque necessaria per creare l'oggetto (posso vedere dai log se viene creato), ma...non riesco a invocarne i metodi js :muro:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.