Newsgroup: it.comp.lang.javascript
Titolo: pasteHTML

Salve a tutti!
Premetto che non sono un espertissimo utilizzatore di javascript, ma 
vengo a voi con una domanda alla quale spero abbiate una risposta perché 
mi sta facendo dannare...
Ho scritto un pannello di controllo mischiando javascript e php che 
permetta agli altri gestori del mio sito di modificare le pagine 
autonomamente, tramite una textarea (partendo da quegli script che si 
trovano su Internet e modificandolo fortemente).
Ora, ho sviluppato un sistema che permetta di inviare immagini sul sito. 
Le immagini sono salvate tramite HTTP POST nella cartella temporanea, 
sono poi spostate tramite php in una cartella predefinita e sempre 
tramite php viene creato un thumbnail dell'immagine (l'immagine viene 
ridimensionata e ad essa viene applicata una mask in png che vi crea un 
riquadro).
A questo punto devo inserire nella textarea l'immagine thumbnail con il 
link all'ingrandimento. L'ingrandimento lo visualizzo in una finestra in 
popup aperta sempre tramite javascript che controlli la risoluzione 
dello schermo ed imposti le dimensioni della stessa in base alle 
dimesnioni dell'immagine (ricavate da php) controllando che non sia mai 
più grande dello schermo...
Per inserire quindi il thumbnail nella textarea utilizzo la seguente 
riga di codice:
sel.pasteHTML('<a HREF="#" onClick="Imager(\'uploaded\',\'' + basename + 
'\',\'' + alt + '\',' + height + ',' + width + ')"><IMG SRC="'+ thumb 
+'" ALT="' + alt + '" ALIGN = "' + align + '" BORDER ="0"></A>');
E ovviamente il tutto viene poi salvatoin un database mysql e recuperato 
poi in seguito nella pagina in cui dev'essere mostrato il contenuto.
Il problema sta nel fatto che la funzione pasteHTML modifica il codice 
HREF="#" sostituendo il # con il link alla pagina da cui viene inserita 
l'immagine... che ovviamente non è mai quella in cui l'immagine verrà 
visualizzata!
In questo modo quando vado a cliccare sul link, la finestra in popup si 
apre, sì, ma la finestra parent viene indirizzata alla pagina del 
pannello di controllo in cui si possono inserire i contenuti... 
Chiedendo ovviamente il login.
Leggendo su msdn ho letto che la funzione si riserva il diritto di 
modificare il codice qualora non sia inserito del codice corretto...
Come posso dire a javascript di lasciare soltanto il # senza inserire il 
link completo?
Grazie a tutti e scusate per il lunghissimo post!
-- 
Liuk - Cavaliere Jedi | Ex allievo della maestra Alkaid
Email: 
li...@fanwars.it
 - Home Page: 
http://www.fanwars.it
Padre mufhd0 che sei nei server, sia santificato il tuo
hostname, venga il tuo broadcast, sia fatta la tua
configurazione così in linux come in BSD. Dacci oggi il
nostro source quotidiano e rimetti a noi i nostri codici
come noi li rimettiamo ai nostri sviluppatori e non indurci
in segfault ma liberaci da Microsoft.



visualizzata!
Ciao, anch'io sto tribulando con pasteHTML. Purtroppo quando "legge"
l'html i link relativi vengono letti come link assoluti. Di conseguenza
se in href non c'e' un link assoluto, ci mette quello della pagina
corrente!!!
L'unico modo che ho trovato per ovviare a questo problema e' stato
quello di ritrasformare i link usando un replace con oppurtuna
espressione regolare. 
Per esempio nel tuo caso se tutti gli href sono del tipo "<a href="#"
...." puoi usare:
html = html.replace(/<(\w[^>]*) href="([^>"]*)" /gi,"<$1 href=\"#\" ");
(dovrebbe prendere qualunque tag che contiene href="..." e restituirlo
con href"#" eliminando la parte racchiusa tra i doppi apici. 
Se ti sono stato utile, dai un'occhio al mio problema nel thread
"individuare i tag html di un testo selezionato". 
Salutissimi. 
"Se sarete quello che dovete essere, metterete fuoco in tutto il mondo".
                                                          (GMG 2000) 
  ________
  \  /\  /
   \/  \/     T R X
   /\  /\    -------- (c)
  /  \/  \
  ^^^^^^^^