Pit: Tuts das nur bei mir nicht? (Fiddle zu UI-Dialog mit externem Inhalt)

Hallo,

ich habe zur Frage, wie man externe URls in einen UI-Dialog einfügen kann, hier (und auch woanders) immer wieder dieselbe Antwort gefunden. Aber wann immer ich es versucht habe oder auf anderer Leute Fiddles geschaut habe, ich habe das noch nie funktionierend (ohne iframe) gesehen.

Liegt das an mir oder was passt da nicht?

Pit

  1. Hallo,

    kann das an der Same Origin Policy liegen?

    Gruß
    Jürgen

    1. Hallo,

      kann das an der Same Origin Policy liegen?

      Gruß

      Hi Jürgen,

      hatte ich auch schon mal dran gedacht, aber dann sollte der hier ja laufen…

      Pit

      1. Tach!

        kann das an der Same Origin Policy liegen?

        hatte ich auch schon mal dran gedacht, aber dann sollte der hier ja laufen…

        Genauer nachschauen. Dein Fiddle läuft in einem Iframe mit anderer URL als die Seite.

        Zudem ist class="content" nicht #content sondern .content.

        dedlfix.

        1. Hi dedlfix,

          Genauer nachschauen. Dein Fiddle läuft in einem Iframe mit anderer URL als die Seite.

          Autsch. Klar, daran lags dann auch.

          Zudem ist class="content" nicht #content sondern .content.

          Ok. Habe ich nicht nachgeschaut, war nicht mein Code.

          1 Frage noch:

          Beim Onclick Event ist mir "der Verursacher" über this.id bekannt. Über $('#dialog-message').dialog('open'); wird dann der eigentliche Dialog gestartet:

          $('#dialog-message').dialog({
              autoOpen: false,
              usw...
          	  open: function (event, ui) {
                  $('#dialog-message').load('test.php?id=' + this.id);
              },
          usw...
          

          Hier ist aber natürlich this.id wieder "dialog-message".

          Wie bekomme ich meine this.id vom Onclick dort hinein?

          Pit

          1. Tach!

            Wie bekomme ich meine this.id vom Onclick dort hinein?

            Laut Dokumentation hat die Mthode open keine weiteren Parameter und demzufolge auch keine Möglichkeit, irgendwas zu übergeben. Bleibt das Event open, und da gibts nur das event-Objekt. Wenn da keine Referenz drin ist, die du nutzen kannst, dann gehts nicht direkt. Und nein, da ist nichts, weil nicht das click-Event durchgereicht wird, sondern das open-Event ein anderes ist. Da bleibt nicht mehr viel als eine globale Variable zu belegen, oder lokal zu dem Scope, in dem beide Code-Teile stehen.

            dedlfix.

            1. Hi dedlfix,

              oops, hatte Deine Antwort übersehen, sorry.

              Habe inzwischen die Antwort aber erroiert und es läuft auch bereits.

              Danke an Dich und Jürgen für die wochenendfrühmorgentliche Hilfe,

              Pit

              1. Hallo,

                Habe inzwischen die Antwort erroiert

                ist das neudeutsch für ein Trial&Error-Verfahren? Was du meinst, schreibt sich mit einem 'r' und 'u'.

                Gruß
                Kalk

          2. Beim Onclick Event ist mir "der Verursacher" über this.id bekannt. Über $('#dialog-message').dialog('open'); wird dann der eigentliche Dialog gestartet:

            $('#dialog-message').dialog({
                autoOpen: false,
                usw...
            	  open: function (event, ui) {
                    $('#dialog-message').load('test.php?id=' + this.id);
                },
            usw...
            

            Hier ist aber natürlich this.id wieder "dialog-message".

            Wie bekomme ich meine this.id vom Onclick dort hinein?

            Habs selber hin bekommen. Das kann man über die Data Methode von jquery machen, das klappt auch sehr gut.

            Pit