2016-07-11 12 views
-1

Ich muss den Effekt eines Popup mit einem DIV mit DOM zu erstellen, habe ich einen iframe, innerhalb des Rahmens ist ein Formular, kann ich nicht loswerden der div mit Javascript in der Schaltfläche senden, weil das DOM sieht nur nach dem iframe seine Schöpfung und nicht die div, die es enthält ... wie soll ich tun?Javascript, ich kann nicht mit der Sonne die oben genannten Elemente zu einem iframe

<html> 
    <body > 
    <h1>Title</h1> 
    </body> 
</html> 

// globale Variable, die

Bezug auf divPopup des Elements enthalten
var divPopup; 
function hideDiv() { 
    window.alert("Content of DIV POPUP " + divPopup); 
    divPopup.className = "overlayHidden"; 
} 


function load_page() { 

    var nodoDiv = document.createElement("DIV"); 
    divPopup = nodoDiv; 
    nodoDiv.className = "overlay"; 
    nodoDiv.setAttribute("id", "popup1"); 
    //nodoDiv.addEventListener("click", function() { hideDiv(); }, false); 

    document.body.appendChild(nodoDiv); 

    var nodoDivPopup = document.createElement("DIV"); 
    nodoDivPopup.setAttribute("id", "popup2"); 
    nodoDivPopup.className = "popup"; 
    var elem = document.getElementById("popup1"); 
    divPopup = elem; 
    elem.appendChild(nodoDivPopup); 

    var nodoDivEsami= document.createElement("DIV"); 
    nodoDivEsami.setAttribute("id", "contenitoreEsami"); 
    nodoDivEsami.className = "content"; 
    var elem = document.getElementById("popup2"); 
    elem.appendChild(nodoDivEsami); 

    var nodoIFrame = document.createElement("IFRAME"); 
    nodoIFrame.className = "content"; 
    nodoIFrame.setAttribute("src", "esami_da_importare_TEST.html"); 
    var nodoDivEsami = document.getElementById("contenitoreEsami"); 
    nodoDivEsami.appendChild(nodoIFrame); 
    //window.alert(document.body.innerHTML); 

} 

_______file Css

.overlayHidden{ 
    visibility:hidden; 
    opacity:0; 
    } 

die Funktion hideDiv() in der Form ist, aktiviert onClick Absenden-Schaltfläche auf. die window.alert() in Funktion hideDiv zurück "undefined" ...

+0

Warum haben Sie einen iFrame verwendet? Es scheint nichts mit dem Popover zu tun zu haben. Sie könnten versuchen, window.top zu verwenden, um auf das übergeordnete Dokument innerhalb des iframe-Dokuments zu verweisen. – Shilly

+1

> "Ich kann nicht mit der Sonne"? –

Antwort

0

Ich denke, Sie versuchen zu hart, wie iFrames notorisch problematisch sind. Sie müssen keinen iFrame verwenden, und Sie können Ihre DIVs im HTML vordefinieren (es sei denn, Sie müssen den DIV dynamisch erstellen). Zum Beispiel:

<div id="popup1" class="overlayHidden"> 
    <div id="contenitoreEsami" class-"content"> 
     ... 
    </div> 
</div> 

Kein Code wird zum Laden der Seite benötigt. Wenn Sie das Popup anzeigen möchten, ändern Sie seine Klasse in etwas, das nicht ausgeblendet ist.

+0

Ja, ich muss dynamisch ein DIV für Projektspezifikationen erstellen. jedoch habe ich das Problem gefunden: Verwenden Sie document.parent.document.getElementById ("popup1"); –