Inhalt Asynchron in ein Div Laden

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Inhalt Asynchron in ein Div Laden

    Hallo Community,

    ich versuche ein Tool von mir, welches auf der Google Api basiert, asynchron in div zu parsen. Das Ganze funktioniert soweit auch, jedoch funktionieren die Infoboxen nicht. Mein Code sieht so aus :

    PHP-Code:
      $.get('http://tool.com', function(result)
    {
      
    $result = $(result);          
    }, 
    'html').done(function( data 
    {
      $(
    "#div_content").append(data);
    $(
    document).ready(function()
     {
     $.
    ajax({ url"http://google-maps-utility-libraryv3.googlecode.com/svn/tags/infobox/1.1.9/src/infobox.js"
    dataType"script"
     
    }).done(function() {   
    loadScriptFunc('https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true&callback=initialize'); 
             });
           });
        });

       function 
    loadScriptFunc(urlcallback)
                                   {
                                        
    alert(callback);
                                       
    // Adding the script tag to the head as suggested before
                                       
    var head document.getElementsByTagName('head')[0];
                                       var 
    script document.createElement('script');
                                       
    script.type 'text/javascript';
                                       
    script.src url;

                                       
    // Then bind the event to the callback function.
                                       // There are several events for cross browser compatibility.
                                       
    script.onreadystatechange callback;
                                       
    script.onload callback;

                                       
    // Fire the loading
                                       
    head.appendChild(script);
                                   } 

    Ich bekomme von der Javascriptconsole die Meldung : infobox.open is not a function

    Hoffe mir kann jemand weiterhelfen und mein Problem nachvollziehen.

  • #2
    Zitat von Me7z Beitrag anzeigen
    ich versuche ein Tool von mir, welches auf der Google Api basiert, asynchron in div zu parsen.
    Dieser Satz komputiert bei mir leider nicht ...

    Das Ganze funktioniert soweit auch, jedoch funktionieren die Infoboxen nicht. ...
    Ich bekomme von der Javascriptconsole die Meldung : infobox.open is not a function
    Die Fehlermeldung ist doch recht aussagekräftig. Du könntest dir den Typ und den Inhalt von infobox.open ausgeben lassen, um weiterzukommen. Da die Google-APIs aber eine Methode infobox.open() haben, kannst du den Schritt überspringen und gleich versuchen herauszufinden, warum die Variable infobox nicht das ist, was dein Script erwartet. Ein Ansatz wäre, nachzuschauen, ob die referenzierten Resourcen (wie die "infobox.js") überhaupt existieren.
    Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

    Kommentar


    • #3
      Zitat von fireweasel Beitrag anzeigen
      Dieser Satz komputiert bei mir leider nicht ...
      Schade für dich


      Habe das Problem mittlerweile gelöst, die Infobox.js war eingebunden jedoch scheint es hier ein kleines Problem mit dem asynchronen Laden zu geben. Konnte das ganze mit einer kleinen Verzögerung der Initialisierung lösen.

      Danke trotzdem

      MfG

      Kommentar


      • #4
        Zitat von Me7z Beitrag anzeigen
        Konnte das ganze mit einer kleinen Verzögerung der Initialisierung lösen.
        Pfuschlösung also. Sorge lieber dafür, dass es in der richtigen Reihenfolge initialisiert wird. Bei ungünstigen Timings tritt das Problem sonst wieder auf.

        Kommentar


        • #5
          Zitat von h3ll Beitrag anzeigen
          Pfuschlösung also.
          Bin für neue Vorschläge gerne offen . Habe das ganze aber richtig initialisiert, das Problem ist, dass die Infobox.js anscheinend nur teilweise geladen war und die Initialisierung der Map schon angefangen hatte, daher war infobox.open undefined, mit der Verzögerung meinte ich, dass ich der Infobox.js nun die Zeit gegeben habe sich vollständig einzubinden.

          Kommentar


          • #6
            Zitat von Me7z Beitrag anzeigen
            Bin für neue Vorschläge gerne offen . Habe das ganze aber richtig initialisiert, das Problem ist, dass die Infobox.js anscheinend nur teilweise geladen war und die Initialisierung der Map schon angefangen hatte, daher war infobox.open undefined, mit der Verzögerung meinte ich, dass ich der Infobox.js nun die Zeit gegeben habe sich vollständig einzubinden.
            Und wenn sie mal länger zu laden braucht, als du ihr Zeit gibst?

            Es gibt load-Events im Browser. Die sind nicht aus Spaß da.

            Kommentar


            • #7
              Zitat von h3ll Beitrag anzeigen
              Es gibt load-Events im Browser. Die sind nicht aus Spaß da.
              Das Load Event kann ich aber nicht benutzen, da ich die Seite auf der die Map eingebunden wird nicht beeinflussen kann. Mittlerweile hat sich das Thema mit JQuery erledigt, da es anscheinend nicht mehr der Anforderung entsprach. Das Ganze soll nun mittel XMLHttpRequest abgewickelt werden, was eine erneute Frage von mir aufwirft und zwar bekomme ich das selbe Ergebnis wie bei $.get mittels

              PHP-Code:
              function httpGet(theUrl)
              {
                  var 
              xmlHttp = new XMLHttpRequest();
                  
              xmlHttp.open"GET"theUrlfalse );
                  
              xmlHttp.sendnull );
                  
              alert(xmlHttp.response);
                  return 
              xmlHttp.response;

              Hierbei liegt das Problem jedoch, dass ich nicht auf den Code der dadurch übermittelt wird zugreifen kann - sprich ein einfaches alert("Test"); funktiniert nicht. Gibt es eine Möglichkeit auf den Code innerhab von response zuzugreifen?

              Kommentar


              • #8
                Davon würde ich abraten. Das macht alles nur umständlicher und fehleranfälliger. Verwende ein Framework, das sich um AJAX-Abfragen kümmert.

                Kommentar


                • #9
                  Leider kann ich kein Framework verwenden, da die Anforderung aktuell so ist das nur mit Javascript zu lösen.. Ist das überhaupt möglich ?

                  Kommentar


                  • #10
                    Zitat von Me7z Beitrag anzeigen
                    Leider kann ich kein Framework verwenden, da die Anforderung aktuell so ist das nur mit Javascript zu lösen..
                    Dann solltest du gleich mal die 10fache Arbeitszeit einplanen und das deinem Auftraggeber auch so mitteilen. Ob er noch immer auf diese Einstellung beharrt, wenn er solche Spezialwünsche zahlen muss?

                    Zitat von Me7z Beitrag anzeigen
                    Ist das überhaupt möglich ?
                    Möglich ist vieles. Vernünftig aber nicht.

                    Kommentar

                    Lädt...
                    X