Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    TextArea come document?

    Salve a tutti.
    Spero di non disturbare nel proporre una domanda che magari è già stata discussa in passato.

    Il problema da esporre è essenzialmente semplice.
    Io ho un editor wysiwyg di tipo Textarea.
    Poniamo di aver dentro la textarea il contenuto:

    codice:
    <input type="text" value="pippo" id="topolino" size="10"/>
    Io riesco ad accedere al contenuto dell'editor (che per la cronaca è Cross-Browser Rich Text Editor: http://www.kevinroth.com/rte/demo.htm)
    con il comando:

    codice:
    var obj = document.QTI.rte1.value;
    In obj avrò quindi l'intero contenuto della textarea.

    Tuttavia a me servirebbe poter accedere a questo contenuto, utilizzando le istruzioni tipiche di una pagina.
    Per esempio vorrei poter utilizzare su esso, un comando come:

    codice:
       var oggetto = geElementById ('topolino');
       alert (oggetto.value);
    E' possibile fare qualcosa del genere? Se sì, in quale modo?

    Si potrebbe pensare di creare una specie di pagina web nascosta creata dinamicamente tramite il contenuto e quindi usarla per lanciare quei comandi. Mi sembra una soluzione macchinosa e a dire il vero non so neanché se sia fattibile però è la prima cosa che mi è venuta un mente.

    Vi sono enormemente grato per qualsiasi suggerimento. E' una question importante?

    Grazie e alla prossima...
    .:[Mr.Mime]:.

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Mi sa che sei troppo avanti con il pensiero.....

    Comunque il contenuto della textarea e` un testo, e tale testo puo` essere analizzato mediante l'uso delle RegExp.
    Inlinea di massima tali analisi si fanno lato server, ma anche nel browser si puo` fare qualcosina (non troppo complesso per non appesantire troppo il client).

    Ad esempio. Se hai il contenuto della textarea in una variabile conten, puoi fare:

    var subcont = conten.replace(/id\=\"topolino\".*value=\"(.+)\"/, $1);

    dove pero` e` necessario che id= sia sempre prima di value=

    Ho considerato che il sepatore di strnghe sia sempre ", ma complicando la RegExp si puo` anche fare in modo che sia " oppure '
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Innanzitutto grazie per la risposta.

    Hmm... quindi non esiste modo oltre alle espressioni regolari, per trattare i dati come pagine separate?

    Ed il discorso che ho fatto? Magari creare del codice nascosto da indirizzare? (Tralasciando il discorso pesantezza sul client).

    Grazie e alla prossima...
    .:[Mr.Mime]:.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ora che mi ci fai pensare ...

    Potresti salvare il codice della textarea in un <div> o <frame> a parte (eventualmetne nascosti) ed accedervi poi con i metodi da te ipotizzati.

    La cosa va fatta tramite <frame> / <iframe> se il codice si riferisce ad una pagina (cioe` contiene anche tag come <head> e <body>);
    la cosa va fatta tramite un <div> se invece il codice e` solo un pezzo di HTML.

    Quindi ora devi chiarire il contorno, perche` chiaramente nei due casi il codice e` molto diverso.

    Devi anche chiarire il linguaggio in cui vuoi fare la cosa.
    Se vuoi usare XHTML, questo ti impedisce l'uso di frame, finestre e comunque oggetti che contengono pagine (anche se in teoria si puo`, ma non ho ancora capito come si dovrebbe fare - credo che i browser non sono aggiornati in questo campo).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Nel caso propendessi per l'uso di iframe, come posso accedere al contenuto dello stesso utilizzandolo come fosse una pagina?

    Richiamando l'oggetto iframe, posso prelevare le info sui suoi parametri e l'url della pagina del campo src.

    Es.

    codice:
    <iframe src="pippo.htm" id="axia" name="axia"></iframe>
    Con questo comando:

    codice:
    var obj2 = document.getElementById ('axia');
    mi stampa correttamente il percorso del file pippo.htm.
    Come posso però lanciare un comando come:

    codice:
    var oggetto = document.getElementById ('minnie');
    dove minnie è un oggetto dentro pippo.htm?

    Grazie e alla prossima...
    .:[Mr.Mime]:.

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    C'e` qualche imprecisione (qualche browser potrebbe arrabbiarsi):
    var obj2 = document.getElementById('axia');
    questo salva l'oggetto con id="axia" nella variabile obj2.
    Se l'oggetto e` un iframe, puoi applicare alcune proprieta`:

    obj2.src ==> il sorgente

    obj2.location.href ==> l'URL del file caricato (tutto il path)
    E` anche l'unica proprieta` che e` una stringa, per cui se stampi obj2 il browser potrebbe stampare di fatto l'href

    obj2.document.getElementById('minnie') ==> l'oggetto con id="minnie" all'interno del documento contenuto nell'iframe


    NOTA: dato che usi frame, il tutto e` valido per HTML o XHTML transitional, non strict.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.