2017-03-17 5 views
0

Ich habe einen Iframe innerhalb einer HTML-Seite. Meine Website ist auf Domain: abc.domain.local Meine Iframe auf Domäne ist: def.domain.localBerechtigung verweigert Iframe auf derselben Domain

Einige der Tests, die ich nicht einmal etwas zurückgeben gemacht, und einige von kehrt dann Zugriff verweigert Eigenschaft zuzugreifen 'Dokument'

Ich habe auf 9 verschiedene Arten versucht (Code unten) und keiner von dann funktioniert. Ich habe Cors Everywhere und deaktivierte Richtlinien für Firefox (letzte Version) installiert.

Ich habe viele andere Erweiterungen installiert, um die Cross-Domain-Richtlinien für Chrome und Firefox zu deaktivieren, und es hat sich nichts ergeben. Ich habe Chrom mit einigen Parametern gestartet Web-Sicherheit zu deaktivieren, und nicht funktionierte

Leider kann ich nichts eingestellt auf def.domain.local, nicht Ereignisse erstellen JS-Dateien auf der Homepage Postmessage

zu verwenden
<html> 
<head> 
    <script src="js/jquery-3.1.1.js"></script> 
</head> 

<body> 
    <input type="button" value="1" onclick="teste1()" /> 
    &nbsp;&nbsp; 
    <input type="button" value="2" onclick="teste2()" /> 
    &nbsp;&nbsp; 
    <input type="button" value="3" onclick="teste3()" /> 
    &nbsp;&nbsp; 
    <input type="button" value="4" onclick="teste4()" /> 
    &nbsp;&nbsp; 
    <input type="button" value="5" onclick="teste5()" /> 
    &nbsp;&nbsp; 
    <input type="button" value="6" onclick="teste6()" /> 
    &nbsp;&nbsp; 
    <input type="button" value="7" onclick="teste7()" /> 
    &nbsp;&nbsp; 
    <input type="button" value="8" onclick="teste7()" /> 
    &nbsp;&nbsp; 
    <input type="button" value="9" onclick="teste7()" /> 
    &nbsp;&nbsp; 
    <input type="button" value="10" onclick="teste7()" /> 
    &nbsp;&nbsp; 
    <br /><br /> 
    <iframe id="frame" name="frame" style="width: 1000px; height: 600px;" src="http://abc.domain.local"> 

    </iframe> 

    <script type="text/javascript"> 
     document.domain = 'domain.local'; 

     function teste1(){ 
      console.log(document.getElementById('frame').contentWindow.document.body.innerHTML); 
     } 

     function teste2(){ 
      $.getJSON('http://def.domain.local/monitor.htm', function(data){ 
       console.log(data); 
      }); 
     } 

     function teste3(){ 
      console.log($("#frame").find("iframe").contents().find('body')); 
      console.log($("#frame").find("iframe").contents().find('html')); 

     } 

     function teste4(){ 
      a = $("#frame").find("iframe").contents().find('body'); 
      console.log(a.innerHTML); 
      console.log(a.html()); 
     } 

     function teste5(){ 
      var iframeWindow1 = document.getElementById("frame").contentWindow; 

      iframeWindow1.addEventListener("load", function() { 
       var doc1 = iframe.contentDocument || iframe.contentWindow.document; 
       var target1 = doc.getElementById("html"); 

       console.log(target1.innerHTML); 
      }); 
     } 

     function teste6(){ 
      $.ajax({ 
       url: 'http://def.domain.local/monitor.htm', 
       type: 'GET', 
       dataType: 'html', 
       success: function (data) { 

        console.log(data); 

       }, 
       error: function (data) { 
        console.log("error: " + data); 
        console.log(data); 
       } 
      }); 
     } 

     function teste7(){ 
      $('iframe').contents().find('body').css('opacity','0.1'); 
     } 

     function teste8(){ 
      var iframe = document.getElementById('frame'); 
      var iframeDocument = iframe.contentDocument || iframe.contentWindow.document; 
      var iframeContent; 

      iframeContent = iframeDocument.getElementById('body'); 

      var iframeWindow = iframe.contentWindow; 

      // you can even call jQuery or other frameworks if it is loaded inside the iframe 
      console.log(iframeWindow.jQuery('body')); 

      // or 
      console.log(iframeWindow.$('body')); 

      // or even use any other global variable 
      console.log(window.outside_iframe_variable); 

     } 

     function teste9(){ 
      var req = create("get", "http://def.domainlocal"); 
      if (req){ 
       req.onload = function(){ 
        console.log(req.reposnseText) 
       }; 
       req.send(); 
      } 
     } 

     function create(method, url){ 
      var xhr = new XMLHttpRequest(); 
      if ("withCredentials" in xhr){ 
       xhr.open(method, url, true);      
      } 
      else if (typeof XDomainRequest != "undefined"){ 
       xhr = new XDomainRequest(); 
       xhr.open(method, url); 
      } 
      else { 
       xhr = null 
      } 
      return xhr; 
     } 

    </script> 
</body> 
</html> 
+0

Genau was gibt Ihnen diesen Fehler? Versuchen Sie, die Iframe-Laufzeit zu ändern? –

+0

wenn ich "teste3" ausfühle, erhalte ich diesen Fehler. Ich versuche, den HTML-Code von Iframe zu bekommen –

+0

Haben Sie 'document.domain = 'domain.local';' in beiden abc hinzugefügt. und def. ? –

Antwort

-1

Wir erreichen endlich das Ergebnis. Wir konnten nicht auf FireFox tun, aber auf IE war ziemlich einfach. einfach Zugang Cross-Domain durch Stufe anpassen Internetoptionen aktivieren und erhalten von Ajax

Internet Explorer> Stufe anpassen> aktivieren Access-Datenquelle Cross Domain

https://www.webdavsystem.com/ajax/programming/cross_origin_requests

$ Schnipsel ({ url: 'http://def.domain.local ‘ Typ: 'GET' Datentyp: 'html' Erfolg: function (data) { console.log (data) }, Fehler: Funktion (data) { console.log (Daten); } });

Verwandte Themen