Avatar billede kasbas91 Nybegynder
28. december 2010 - 17:17 Der er 15 kommentarer og
1 løsning

Hej jeg er igang med at prøve at lave en dialog ( PopUp ) Men har lidt problemer.. ?

Hej eksperten.dk

Hej jeg er igang med at prøve at lave en dialog ( PopUp ) Men har lidt problemer.. ?

Hvordan kan jeg åbne en webadresse i href

<a rel="dialog" href=" EN ADRESSE "></a>

i en popup med jquery...

Hvis i forstår mig..

Jeg har prøvet at lave det sådan her:

// Vi skal også have sat vores get url, så vi kan fange vores adresse.
var GetUrl    = $(Message).load(this.href + HrefUrl);
// Vi skal have indholdet fra href.
var HrefUrl    = $(this).attr('href');


$("#Container").append("<div id='dialog-overlay'></div><div id='dialog-box'><div id='dialog-content'><div id='dialog-message'>" + GetUrl + "</div><a href='#' class='button-close'>Close</a></div></div>");

Men kan i ikke se om det er rigtig nok, eller hvad der skal laves om...
Avatar billede jakobdo Ekspert
28. december 2010 - 17:22 #1
Avatar billede kasbas91 Nybegynder
28. december 2010 - 17:35 #2
Nej.. Det er ikke sådan en..
Du ved et modal popup, fx facebox, lightbox osv...

Jeg kan godt lave sådan at den åbner og baggrunden bliver mørkere osv..

<a rel="dialog" href=" EN ADRESSE "></a>

Men mit problem er at den adresse altså href adressen.

Skal åbnes i min popup box hvis du forstår:

Et hurtigt eksempel:

<a rel="dialog" href="http://www.google.dk">Google Link</a>

Hvis man klikker på Google Link, så bliver min popup box åbnen og der vil jeg så gerne have at googles side bliver vist i min popup..

Hvis du forstår mig. ;P
Avatar billede jakobdo Ekspert
28. december 2010 - 17:40 #3
Jeg forstår dig godt.
Jeg tror du skal bruge et iframe til det.
Avatar billede kasbas91 Nybegynder
28. december 2010 - 17:51 #4
Ja det kan godt være jeg skal det.

Hmm. Det må jeg lige prøve...
Avatar billede jakobdo Ekspert
28. december 2010 - 17:57 #5
Virker din load() ?
For mener nemlig kun load / ajax virker på lokale sider.
Så enten skal du hente siden via en php / asp etc.. proxy og gemme siden lokalt.
Men med iframe / frames kan du "omgå" dette, da siden blot vises direkte.
Avatar billede kasbas91 Nybegynder
28. december 2010 - 18:54 #6
Det virker vist fint nok med iframe.

Men har et andet problem..

Mit test link ser således ud:

<a href='http://www.google.dk' rel='dialog'>Tjek Google</a>

Og det virker også nogenlunde..

Men når jeg trykker kommer der også en

iframe men den hopper bare direkte over på googles hjemmeside.

Jquery Kode:



$(document).ready(function(){
    $("a[rel*=dialog]").click(function(){
        // Vi skal have indholdet fra href.
        var HrefUrl    = $(this).attr('href');
        $("#Container").append("<div id='dialog-overlay'></div><div id='dialog-box'><div id='dialog-content'><div id='dialog-message'><iframe src='" + HrefUrl + "' width='100%' height='100%'></iframe></div><a href='#' class='button-close'>Close</a></div></div>");
    });
});



Jeg forstå det ikke helt..

Du kan se linket i aktion her:

http://www.idareyou.prowdesign.dk/

Ved at klikke på Tjek google i min menu...
Avatar billede kasbas91 Nybegynder
28. december 2010 - 19:02 #7
Jeg ved ikke om det er iorden at gør det sådan..

Jeg stoppede den redirect til den orginale side.

Ved at skrive return false;
Avatar billede jakobdo Ekspert
28. december 2010 - 20:22 #8
Du kan også gøre sådan her:

ret:

$("a[rel*=dialog]").click(function(){

til:

$("a[rel*=dialog]").click(function(event){
event.preventDefault();
Avatar billede martiinkolle Nybegynder
28. december 2010 - 22:41 #9
Du kan også bruge bPopup. Et jquery plugin.
Avatar billede kasbas91 Nybegynder
28. december 2010 - 23:08 #10
Martiinkolle:

Ja det er rigtigt, det kunne jeg skam godt..

Men det lærer jeg da ikke noget ved.

Det er da sjovere at prøve at lave sit eget..

------------------------------------------------------

Jakobdo:

Jeg tænkte på, at nu henter jeg boksen ud via link ved at kalde på

det med: rel="dialog".

Men jeg vil også gerne hvis jeg kunne kalde den ved success...

fx:


$.ajax({
  type: "",
  url: "",
  data: "",
  success: function(){
  // Her vil jeg gerne kunne kalde den, men hvordan gør det det.
  }
});


Her koden som jeg har lavet til min dialog box.



function HideDialog(){
   
    $("#dialog-overlay, #dialog-box, #dialog-content, #dialog-message, #dialog_iframe").fadeOut("slow");
   
    return false;
}

$(document).ready(function(){
   
    $("#dialog-overlay, #dialog-box, #dialog-content, #dialog-message").hide();
   
    $("a[rel*=dialog]").click(function(event){
       
        event.preventDefault();
       
        if(!$("a[rel*=dialog]").is(":visible")){
           
            HideDialog();
           
            //  Vi skal have indholdet fra href.
           
            var DialogGetUrl  = $(this).attr('href');
           
            // Vi skal bruge den bredde til at justere størrelsen.
           
            var DialogWidth      = $(this).attr('dialogWidth');
           
            // Og sat det i en iframe.
           
            var IframeGetUrl  = "<iframe id='dialog_iframe' style='border: 0px;' src='" + DialogGetUrl + "' width='" + DialogWidth + "'></iframe>";
           
            $("#dialog-overlay, #dialog-box, #dialog-content, #dialog-message").fadeIn("slow");
           
            // Vi sætter en størrelse på dialog-box.
               
            $("#dialog-box").css({
                width: DialogWidth
            });
           
            // Vi skal have åbnet vores iframe.
           
            $("#dialog-message").append(IframeGetUrl);
           
            return true;
       
        }else{
           
            //  Vi skal have indholdet fra href.
           
            var DialogGetUrl  = $(this).attr('href');
           
            // Vi skal bruge den bredde til at justere størrelsen.
           
            var DialogWidth      = $(this).attr('dialogWidth');
           
            // Og sat det i en iframe.
           
            var IframeGetUrl  = "<iframe id='dialog_iframe' style='border: 0px;' src='" + DialogGetUrl + "' width='" + DialogWidth + "'></iframe>";
           
            $("#dialog-overlay, #dialog-box, #dialog-content, #dialog-message").fadeIn("slow");
           
            // Vi sætter en størrelse på dialog-box.
               
            $("#dialog-box").css({
                width: DialogWidth
            });
           
            // Vi skal have åbnet vores iframe.
           
            $("#dialog-message").append(IframeGetUrl);
           
            return false;
           
        }
    });
   
    $("img.dialog_close").hover(function(){
       
        $(this).css("cursor","pointer");
       
    });
   
    $("img.dialog_close").click(function(){
       
        HideDialog();
       
    });
   
    $(document).click(function(){
       
        HideDialog();
       
    });
   
    $("#dialog-box, #dialog-content, #dialog-message").click(function(event) {
       
        event.preventDefault();
       
        return true;
       
    });
});
Avatar billede martiinkolle Nybegynder
28. december 2010 - 23:15 #11
Du har en god pointe.;-) god arbejdslyst :-)
Avatar billede jakobdo Ekspert
29. december 2010 - 13:22 #12
Hvad mener du med succes?
Jeg ved desværre ikke om du kan tjekke om dit iframe loader med success eller ej.

Du kan måske bruge load() http://api.jquery.com/load-event/
Avatar billede kasbas91 Nybegynder
29. december 2010 - 18:13 #13
Jeg tænkte på at når ajax kaldet er færdig at den så åbner mit popup med noget tekst i.
Avatar billede jakobdo Ekspert
29. december 2010 - 18:53 #14
Du har da ikke et ajax kald nu ?
Brugte du ikke en iframe ?
Avatar billede kasbas91 Nybegynder
30. december 2010 - 01:45 #15
Jov jov. Det gør jeg skam, men det er hvis jeg klikker på et link.

Men min iframe bruger jeg til at åbne alt inde i, php filer, html filer, http sider osv.

Jeg vil gerne have min popup med mig, når ajax kaldet er færdigt.

Altså:




$.ajax({
  type: "",
  url: "",
  data: "",
  success: function(){
  // Her vil jeg gerne kunne kalde den, men hvordan gør det det.
  // Så min popup den går igang med noget tekst i...
  }
});



Hvis du forstår mig ;P
Avatar billede kasbas91 Nybegynder
03. januar 2011 - 21:41 #16
Jeg lukker her, men tak for hjælpen allesammen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester