Ergebnis 1 bis 6 von 6
  1. #1
    Computerfreak ist offline Jungspund
    registriert
    17-01-2010
    Beiträge
    17

    XMLHttpRequest & Javascript auf der abgerufenen Seite

    Hallo

    ich bin dabei eine Chrome Extension zu bauen. diese soll eine html Seite auf meinem Server aufrufen. Ich mache dies mit:
    Code:
    var request = new XMLHttpRequest;
                    request.open("GET", "https://www.xxxxxx.de/pe/xyz.html", true);
                    request.addEventListener('load', function (event) {
                        if (request.status == 200) {
    
                            var page = document.implementation.createHTMLDocument("tmpfb");
    
                            page.body.innerHTML = request.response;
                            chrome.extension.getBackgroundPage().console.log(page);
                         
                        }
                    });
    Wenn ich mir die page in der Konsole ansehe, sehe ich dort den kompletten html Code meiner xyz.html Seite. Soweit so gut.

    in xyz.html habe ich ein div in das ein Javascript innerhalb von xyz.html was reinschreiben soll. Wenn ich xyz.html direkt im Browser aufrufe wird das div auch korrekt beschrieben. Aber wenn ich mir den Sourcecode der Seite ansehe, die in meiner extension unter page angezeigt wird, dann ist das div leer. woran liegt das?

    meine html Seite:
    Code:
    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <div id="name"></div>
        
        <script> // Facebook login SDK scripts
    
    			....
                        document.getElementById('name').innerHTML = 'Facebook UserName=' + name;
                ....        
      
        </script>
    </body>
    </html>
    Geändert von Computerfreak (20-03-2017 um 19:08 Uhr)

  2. #2
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.442

    AW: XMLHttpRequest & Javascript auf der abgerufenen Seite

    Bei der Zuweisung zu innerHTML werden Scripte nicht ausgeführt: http://forum.jswelt.de/javascript/63...tml#post404080 (Innerhtml script ausführen nach ajax aufruf)

  3. #3
    Computerfreak ist offline Jungspund
    registriert
    17-01-2010
    Beiträge
    17

    AW: XMLHttpRequest & Javascript auf der abgerufenen Seite

    Ich glaube das ist leider nicht das Problem. Ich hab das mal so abgewandelt das das innerHTML raus ist:
    Code:
    var request = new XMLHttpRequest;
                    request.responseType = "document";
                    request.open("GET", "https://www.xxxxx.de/pe/xyz.html", true);
                    request.addEventListener('load', function (event) {
                        if (request.status == 200) {
    
                            var page = document.implementation.createHTMLDocument("tmpfb");
                            page = request.response;
                            
                            chrome.extension.getBackgroundPage().console.log('responseText: ' + page.getElementById('name').textContent);
    Auch nach der Änderung stand in name leider nicht der gesetzte Wert vom Javascript drin. Was muss ich denn machen um das javascript in der Seite nochmal aufzurufen?

  4. #4
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.442

    AW: XMLHttpRequest & Javascript auf der abgerufenen Seite

    Warum sollte da der Browser irgendein JS im Dokument ausführen? Der XHR erzeugt kein neues window-Objekt und deswegen wäre das JS auch ziemlich sicher falsch.

    Lies' dir einfach den Link durch, den ich oben geschrieben hab'.

  5. #5
    Computerfreak ist offline Jungspund
    registriert
    17-01-2010
    Beiträge
    17

    AW: XMLHttpRequest & Javascript auf der abgerufenen Seite

    Naja ich dachte XHR ruft die Seite auf wie ein Browser und als Rückgabewert bekomme ich die fertige Seite so wie sie im Browser auch angezeigt wird

    Wenn ich es richtig verstehe müsste ich das hier
    Code:
    output.innerHTML = html;
            Array.prototype.forEach.call(output.getElementsByTagName("script"), function(scriptNode){
                var newScriptNode = document.createElement("script");
                if (scriptNode.src){
                    newScriptNode.src = scriptNode.src;
                }
                newScriptNode.text = scriptNode.text;
                output.replaceChild(newScriptNode, scriptNode);
            });
    so umschreiben, das meine chrome extension background page sich das Script aus meinem iframe holt und nochmal ausführt. Richtig? Soweit ich es aber verstehe ist das leider genau mein Problem was nicht geht. Ich hatte ja versucht die Facebook login js SDK direkt vom background script aufzurufen aber das geht nicht, da FB den aufruf direkt von der domäne erwartet wo auch meine app liegt. Daher der workaround mit dem iframe. Ich hatte dazu das hier gefunden: Brian Mayer – Building a Chrome Extension that Connects to a Facebook App

    Leider bekomme ich das
    Code:
    parent.postMessage({connectStatus:"" + response.status + "", userID:"" + uid + "", accessToken:"" + at + ""}, "https://www.<PARENT_PAGE_DOMAIN>"); //This MUST match the root domain where the iFrame will be inserted, or the message won't get passed
     }
    von der Webseite nicht hin, da ich dort nicht verstehe was ich als letzten Parameter eintragen muss. die Background seite hat doch gar keine http://www.-Adresse Ich hab verschiedenes ausprobiert, aber das event kommt im parent nicht an

    Letztlich will ich folgendes machen: Meine Extension soll automatisch gestartet werden, wenn die Person auf eine bestimmte Seite geht, dann soll sich sich von meiner Homepage wo mein Spiel liegt sich die FB Login Information (Username/ID) holen damit die extension den User identifizieren kann. BEsser wäre es die extension könnte direkt die FB Login Scripte aufrufen aber das geht ja wie gesagt nicht, daher der Umweg über das iframe was das login macht und nur die User Daten zurückliefert.

  6. #6
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.442

    AW: XMLHttpRequest & Javascript auf der abgerufenen Seite

    Zitat Zitat von Computerfreak Beitrag anzeigen
    Naja ich dachte XHR ruft die Seite auf wie ein Browser und als Rückgabewert bekomme ich die fertige Seite so wie sie im Browser auch angezeigt wird
    Nein - das macht eine HTTP-Request und liefert dir die Antwort als String bzw. versucht das schon irgendwie zu interpretieren, wenn du den responseType gesetzt hast. Aber das ist nur der Anfang von dem, was der Browser dann noch macht, wenn er eine Seite normal anzeigt.
    Zitat Zitat von Computerfreak Beitrag anzeigen
    Daher der workaround mit dem iframe.
    Welches iFrame?
    Zitat Zitat von Computerfreak Beitrag anzeigen
    da ich dort nicht verstehe was ich als letzten Parameter eintragen muss.
    Du muss das iFrame doch in irgendeine Seite einfügen - und die hat eine Domain.

Ähnliche Themen

  1. [FRAGE] javascript datei per xmlhttprequest ausführen
    Von hisiro im Forum JavaScript
    Antworten: 7
    Letzter Beitrag: 17-12-2014, 09:43
  2. [XML] XMLHttpRequest mit JavaScript
    Von marco.fischer im Forum JavaScript
    Antworten: 15
    Letzter Beitrag: 27-06-2012, 11:31
  3. Javascript + Rest = XMLHTTPRequest?
    Von Mr.Baranej im Forum JavaScript
    Antworten: 7
    Letzter Beitrag: 08-01-2011, 11:35
  4. JavaScript nach XMLHttpRequest ausführen
    Von Lyon im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 03-02-2010, 23:34
  5. Javascript per XMLHttpRequest laden und ausführen
    Von jhuedder im Forum JavaScript
    Antworten: 5
    Letzter Beitrag: 17-07-2008, 14:30

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •