Avatar billede pablopablo Nybegynder
26. april 2008 - 14:13 Der er 16 kommentarer og
1 løsning

Javascript og popup vindue

Hejsa...

Jeg har brug for at køre en ASP side - kaldt fra min asp.net site...det er selvfølgelig ikke svært...men den klassiske ASP sides kode skal blot køres og intet andet...dvs. jeg har indtil videre kaldt ASP siden via følgende kode:

string popupScript = "<script language='javascript'>" +
                    "window.open('MinURL', 'CustomPopUp', " +
                    "'width=200, height=200, menubar=no, resizable=no')" +
                    "</script>";

                    Page.ClientScript.RegisterStartupScript(typeof(Page), "PopupScript", popupScript);

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

Derudover, har jeg indsat disse linier i bunden af ASP siden:

<script type="text/javascript">
window.close()
</script>

Det virker altsammen meget fint! Dog bliver vinduet blokkeret hvis fx. IE 7 har sat POPUP blokker til...

Så mit spørgsmål er derfor nu:

Hvordan kalder jeg ASP siden UDEN at en popup blokker kan stoppe kørslen af scriptet? Jeg er sådan fuldstændig ligeglad hvordan det laves, blot at jeg er 100% sikker på, at scriptet bliver kørt når jeg kalder det fra mit asp.net site!

På forhånd tak!

Ps. Jeg har fundet noget DHTML...Ved ikke om man via det, kan eksekvere siden således, at det ikke blokkeres...?

http://www.bmgadg.com/fade_ad.php#

Mvh. PabloPablo
Avatar billede olebole Juniormester
26. april 2008 - 14:38 #1
<ole>

Du kan heldigvis kun bruge en popup, hvis brugeren selv skal klikke på noget for at udløses popup'en. Derimod kunne du jo lave noget à la:

<script type="text/JavaScript">
var oImg = new Image();
oImg.src = "MinURL";
</script>

- hvor 'MinURL' f.eks. kunne se sådan ud: 'sti/til/dokument.asp?id=123&bla=noget'

/mvh
</bole>
Avatar billede pablopablo Nybegynder
26. april 2008 - 14:50 #2
forstår ikke hvad du mener...brugeren vælger ikke selv at køre popup i mit eksempel...han rediretes fra en SSL server til vores site, som i C# koden kalder popup vinduet/url'en...som åbner uden videre hvis ikek han har en popup blocker sat til...og sorry, kan ikke se hvordan jeg kan bruge din kode?
Avatar billede olebole Juniormester
26. april 2008 - 15:02 #3
Nej, problemet med popups er jo netop, at brugeren ikke selv vælger at udføre handlingen - hvorfor du må vælge en anden approach.
Nej, det er ikke C#-koden, der kalder popup'en, men JavaScript-koden - som godtnok er indsat i dokumentet af C#. C# kan ikke i sig selv virke i en webbrowser  ;o)

Hvad er det, du ikke forstår ved min løsning? Du skal bare skrive koden der, hvor du ønsker at sende noget til din server  =)
Avatar billede pablopablo Nybegynder
26. april 2008 - 15:26 #4
jeg forstår ikke at du opretter et billede og sætte url'en på det, hvad skal det gøre?
Avatar billede pablopablo Nybegynder
26. april 2008 - 15:44 #5
eksekveres URL'en uden at brugeren kan se det, for jeg har prøvet og kan ikke se at detr umiddelbart sker noget....?
Avatar billede olebole Juniormester
26. april 2008 - 16:34 #6
Nej, brugeren ser ikke noget, men du kan jo tjekke på serveren, at kaldet bliver udført ... og det gøt det  =)
Avatar billede mikalj Nybegynder
28. april 2008 - 11:55 #7
En browser vil blokere alle popups som sker automatisk når siden loades.
dvs. som en del af onload event eller hvis du bare sætter det direkte ind i koden
<script type='text/javascript'>
window.open('url', 'navn', 'atributer');
</script>
Det er der ikke noget du kan gøre ved. Hvis du kunne omgå det, ville alle andre også kunne, og så vil folk (inklusiv dig selv) igen blive oversvømmet af popups når de surfer på nettet.

Der er en masse løsninger hvis du bare vil lave et kald til en asp side, uden at få nogen informationer tilbage.
Men jeg tror oleboles svar er den simpleste og mest elegante i det her tilfælde.
Avatar billede pablopablo Nybegynder
28. april 2008 - 12:40 #8
mikalj>> tak for dit indlæg...kan du evt. vise man andre måder at gøre det på...blot for min forståelses skyld :)

På forhåns tak!

Mvh.
Avatar billede pablopablo Nybegynder
29. april 2008 - 11:39 #9
Det skal siges, at kaldet til ASP filen foregår på en SSL forbindelse...og derfor kommer den op og skriver "Siden du er ved at tilgå indeholde både sikre og usikre elementer. Vil du fortsætte?" Idet at ASP filen liggende på en anden server...Så hvis I har en ide til, hvordan jeg kan kalde ASP filen uden at brugeren kan se noget eller få nogle advarsler, vil det være perfekt! Olebole's bud genererer nemlig den omtalte advarsel. Og popup vindue gør ikke, men de blokkeres til gengæld...hmmm....help!

Den eneste måde er måske, at oversætte ASP koden til asp.net, således at man ikke har brug for at tilgå en anden server...derfor har jeg nu også oprettet dette nye spørgsmål: http://www.eksperten.dk/spm/829506
Avatar billede mikalj Nybegynder
29. april 2008 - 13:00 #10
hvornår er det helt præcist at din asp side skal kaldes ?
er det når brugeren klikker på en knap? et link? eller bare hver gang nogen kommer ind på din asp.net side ?
Avatar billede pablopablo Nybegynder
29. april 2008 - 13:23 #11
Hej Mikalj :)

Det er i forbindelse med implementering af et betalingsmodul fra Scannet...Når kunden har lavet et køb, sender div. info til PBS og vi modtager så et svar om tranaktionen er OK eller ej. Dvs. det er en af vores aspx sider som kaldes fra SSL forbindelsen (vores aspx fil er det som hedder "inkluderet" i deres SSL htm fil, idet de koder i klassisk ASP), som gør at aspx filen kaldes med div. querystring parametre...så med andre ord...ASP siden skal blot kaldes hver gang vores resultat aspx side kaldes...selvfølgelig kun hvis requestet er gyldigt, dvs. vi tjekke i C# koden bla. om requestet kommer fra den korrekte IP mv...Så teknisk set, er det inde i en IF-sætning i code behind filen af vores result aspx side, at vi ønsker at kalde ASP fil...det er ligemeget hvordan koden kaldes, blot at det ikke genererer advarsler, popups eller noget andet :)
Avatar billede pablopablo Nybegynder
30. april 2008 - 20:29 #12
any body?
Avatar billede mikalj Nybegynder
01. maj 2008 - 09:34 #13
Du kunne prøve at kigge på HttpWebRequest
http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx
Med det kan du forespørge en anden side fra codebehind. Jeg tror også det er mere sikkert end at lade klientens browser foretage kaldet.

Uden at have kigget nærmere på det mener jeg at det er noget i retning af

WebRequest wr = WebRequest.Create("https://www.domæne.dk/side.asp?x=1&y=2")
wr.GetResponse();
Avatar billede pablopablo Nybegynder
01. maj 2008 - 09:50 #14
MY HERROR! DU HAR REDDET MIN DAG!!!!!! DET SPILLER MAX!
1000000 tak for hjælpen! Det lettede :))

Læg et svar - hvis du ønsker flere points, så læg også et svar i den anden tråd.
Avatar billede mikalj Nybegynder
01. maj 2008 - 10:10 #15
Det var så lidt, tager gerne svar her, men luk du bare selv den anden tråd.
Avatar billede mikalj Nybegynder
01. maj 2008 - 10:20 #16
svar
Avatar billede pablopablo Nybegynder
01. maj 2008 - 10:25 #17
OK! Jeg siger tak igen :)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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