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

    contentWindow undefined. Lavorare nell'IFRAME

    Sto impazzendo!

    Devo riuscire a cambiare, tramite JS, le proprietà di un editor di testo WYSIWYG (FCKeditor).

    L'editor di suo viene messo dentro ad un IFRAME.
    Quindi per riuscire ad accedere al suddetto devo usare la proprietà 'contentWindow'.

    Io uso questo codice:
    codice:
    function setBGCol(fldName,bgCol) { 
    	var editor_frame = document.getElementById(fldName + "___Frame"); 
    	alert(editor_frame.id);
    
    	var editor_source = editor_frame.contentWindow.document.getElementById("eEditingArea"); 
    	editor_source.contentWindow.document.body.style.backgroundColor = bgCol; 
    }
    Il problema è che non funziona.
    Al primo 'alert' (aggiunto da me) mi mostra effettivamente il nome dell' IFRAME.
    Ma poi usando 'contentWindow' non riesco a fare niente.
    Ho provato a fare anche un
    codice:
    alert(editor_frame.contentWindow)
    ma mi dice 'undefined', piuttosto del nome del documento o farmi accedere agli elementi interni.

    L'IFRAME è definito così:
    codice:
    <iframe id="Txa___Frame" src="FCKeditor/editor/fckeditor.html?InstanceName=Txa">
    </iframe>

    Avete idea di come aiutarmi?
    Devo assolutamente riuscire ad accedere al contenuto dell'IFRAME!!

    Vi prego, aiutatemi


    EDIT:

    Potrebbero essere i parametri passati che gli danno noia? Magari vuole il nome pulito del file.
    Che dite?
    E se fosse, come faccio a dargli solo il nome senza parametri?

    Grazie ancora

  2. #2
    Nessuno nessuno che sa darmi una mano?

    Magari sbaglio qualcosa di semplice
    Ho assolutamente bisogno di questa cosa e sono 3 giorni (tutto il giorno) che ci sbatto la testaccia

  3. #3
    Niente?

    Un suggerimento su come testare se sbaglio io o c'è un errore da qualche parte?

  4. #4
    è successo anche a me aggiornando la versione

  5. #5
    piktor se ci sei facci sapere se hai trovato una soluzione

    all'inizio avevo usata funzione inviata da willybit

    Codice PHP:
    function Controlla(){
      
    //bisogna trovare l'iframe eEditorArea all'interno dell'iframe NOMECAMPO___Frame
      
    var iFrame document.getElementById('NOMECAMPO___Frame').contentWindow.document.getElementById('eEditorArea').contentWindow;
      
    alert(iFrame.document.getElementsByTagName('BODY')[0].innerHTML)

    e funzionava egregiamente ... in questa release no
    ho notato che il nome non è più eEditorArea ma xEditorArea ma non funziona

  6. #6
    lavorandoci

    var nomecampoeditor = namecampo + '___Frame';

    var ifr = document.getElementById(nomecampoeditor);
    var oDoc = (ifr.contentWindow || ifr.contentDocument || ifr.document);


    if (oDoc.document) {
    oDoc = oDoc.document;
    }

    iimy2 = oDoc.getElementsByTagName('IFRAME')[0].document;

    mi dice che è un oggeto ma non mi fa entrare per visualizzare l'html che è contenuto

    iimy3 = iimy2.getElementsByTagName('BODY')[0].innerHTML; -> non funziona

  7. #7
    RISOLTO

    Codice PHP:

        
    var nomecampoeditor namecampo '___Frame'    ;
        var 
    ifr document.getElementById(nomecampoeditor);
        var 
    oDoc = (ifr.contentWindow || ifr.contentDocument || ifr.document);
        
        if (
    oDoc.document) {
            
    oDoc oDoc.document;
        } 
        
        
    iimy2 oDoc.getElementsByTagName('IFRAME')[0];
        
    iimy2 = (iimy2.contentWindow || iimy2.contentDocument || iimy2.document);
        
        if (
    iimy2.document) {
            
    iimy2 iimy2.document;
        }     
        
        
    iimy3 iimy2.getElementsByTagName('BODY')[0].innerHTML;
        
        
    alert(iimy3)
        
        return 
    false

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.