Avatar billede simsen Mester
13. december 2006 - 20:17 Der er 13 kommentarer og
1 løsning

OnClick åbner ikke nyt vindue i IE

Hej,

Jeg er ved at blive drevet til vanvid..... Følgende javascript, skal åbne et nyt vindue (for hver loop, der måttte være).

Den åbner godt nok et vindue ved første forekomst. Men forsøger jeg at klikke på næste forekomst vil den ikke åbne et vindue i IE. Forsøger jeg nøjagtig det samme i Firefox, har jeg ingen problemer. Den åbner begge forekomster uden problemer.

Nogen der kan fortælle mig, hvad jeg skal gøre, for at få problemet løst?

Mit java script:

<script type="text/javascript" language="javascript">
        <!--
            function startVindue(theURL,winName,width,height,features) {
            var window_width = width;
            var window_height = height;
            var window_top = (screen.height-window_height)/2;
            var window_left = (screen.width-window_width)/2;
    newWindow=window.open(''+ theURL + '',''+ winName + '','width=' + window_width + ',height=' + window_height + ',top=' + window_top + ',left=' + window_left + ',' + features + '');
    newWindow.focus();
            }
        -->
    </script>


Her bruger jeg koden:

<itemTemplate>
                            <tr>
                                <td style="text-align: center; vertical-align: top;">
                                    <a href="java script:;" onclick="startVindue('<%# DataBinder.Eval(Container.DataItem, "overskriftlink")%>','<%# DataBinder.Eval(Container.DataItem, "overskrift")%>','820','650','scrollbars=yes')">
                                        <%# DataBinder.Eval(Container.DataItem, "Overskrift")%> 
                                    </a>
                                </td>
                                <td style="text-align: left; vertical-align: top;">
                                    <%# DataBinder.Eval(Container.DataItem, "beskrivelse")%>
                                </td>
                            </tr>
                    </itemTemplate>

mvh
simsen :-)
Avatar billede thesurfer Nybegynder
13. december 2006 - 21:02 #1
Din aspx kode kan vi ikke bruge til så meget..

Hvordan ser koden ud, efter at den er loadet i browseren?

Du skal kopiere kildekoden her ind..
Avatar billede simsen Mester
13. december 2006 - 21:23 #2
Jamen du får da lige udskriftet for det, hvor det går galt:

<tr>
                                <td style="text-align: center; vertical-align: top;">
                                   
                                    <a href="#" OnClick="self.window.open('Login/login.aspx','Login','left=0,top=0,height=650,width=820,resizable=no,status=no,toolbar=no,menubar=no,location=no')">Login </a>

                                </td>
                                <td style="text-align: left; vertical-align: top;">
                                    Denne sikrer vha. en Access database, at kun de personer, der har brugernavn og adgangskode kan få adgang til en eller to sider. Den er udformet således, at forskellige brugere, kan have forskellige sider.
Dette kan eksempelvis bruges hvis man vil opdatere databasen fra nettet og dermed har brug for en brugerside og en Administratorside.
                                </td>
                                <td style="text-align: left; vertical-align: top;">
                                    <a href="java script:;" onclick="startVindue('Login/login.mht','Login','820','650','scrollbars=yes')">
                                        Login beskrivelse
                                    </a>
                                </td>
                            </tr>
                   
                            <tr>
                                <td style="text-align: center; vertical-align: top;">
                                   
                                    <a href="#" OnClick="self.window.open('HenteData/HenteData.aspx','Hente data','left=0,top=0,height=650,width=820,resizable=no,status=no,toolbar=no,menubar=no,location=no')">Hente data </a>

                                </td>
                                <td style="text-align: left; vertical-align: top;">
                                    Denne viser hvordan man henter data fra en Access database
                                </td>
                                <td style="text-align: left; vertical-align: top;">
                                    <a href="java script:;" onclick="startVindue('HenteData/hentedata.mht','Hente data','820','650','scrollbars=yes')">
                                        Hente data beskrivelse
                                    </a>
                                </td>
                            </tr>
Avatar billede simsen Mester
13. december 2006 - 21:25 #3
Og vil du have de to linier - hvor første linie går godt - næste gør ingenting :

<a href="#" OnClick="self.window.open('Login/login.aspx','Login','left=0,top=0,height=650,width=820,resizable=no,status=no,toolbar=no,menubar=no,location=no')">Login </a>


<a href="#" OnClick="self.window.open('HenteData/HenteData.aspx','Hente data','left=0,top=0,height=650,width=820,resizable=no,status=no,toolbar=no,menubar=no,location=no')">Hente data </a>
Avatar billede thesurfer Nybegynder
13. december 2006 - 21:30 #4
I dit indlæg 13/12-2006 21:23:45, er fejlen er du har for mange parametere..

Det korrekte antal og type:

window.open('adresse','vinduets navn','vinduets egenskaber som højde, bredde, osv')

Du behøver ikke self, da det er overflødigt..

Og:
Når du vil bruge noget JavaScript på et link, og f.eks. vil bruger href="#", skal du bruge "return false" i din onclick.

Eksempel:

<a href="#" onclick="window.open('...','...','...');return false">åben vindue</a>

Dit indlæg 13/12-2006 21:25:33 burde virke.. husk return false..
Avatar billede simsen Mester
13. december 2006 - 21:44 #5
Nu bruger jeg denne her:

<a href="#" onclick="window.open('Login/login.aspx','Login','left=0,top=0,height=650,width=820,resizable=no,status=no,toolbar=no,menubar=no,location=no');return false">åben vindue</a>

<a href="#" onclick="window.open('HenteData/HenteData.aspx','Hente data','left=0,top=0,height=650,width=820,resizable=no,status=no,toolbar=no,menubar=no,location=no');return false">åben vindue</a>

Og stadig - nr. 2 vil bare ikke åbne i IE - men godt i Firefox........
Avatar billede thesurfer Nybegynder
13. december 2006 - 21:48 #6
Sikkert pga mellemrum i vinduets navn: Hente data

Prøv med "Hentedata"..
Avatar billede simsen Mester
13. december 2006 - 21:48 #7
Så har jeg fundet forskellen på de to..........

Navnet jeg bruger - altså ved vinduets navn har et mellemrum - det må der åbenbart ikke være i IE?
Avatar billede thesurfer Nybegynder
13. december 2006 - 21:49 #8
2 sekunder.. du er for langsom.. :-)
Avatar billede simsen Mester
13. december 2006 - 21:56 #9
Ja ja - kun med 2 secs NÅ ;-)

Er der intet at gøre i den retning?
Avatar billede thesurfer Nybegynder
13. december 2006 - 22:01 #10
Måske DataBinder.Eval(Container.DataItem, "overskrift").ToString().Replace(" ", "") ?
Avatar billede thesurfer Nybegynder
13. december 2006 - 22:02 #11
Eller smid værdien over i en variabel (f.eks. "overskrift") og brug: overskrift.Replace(" ", "")

Så fjerner den mellemrum..
Avatar billede simsen Mester
13. december 2006 - 22:08 #12
Er faktisk ligegyldigt - det bliver nemlig ikke vist noget sted, kan jeg se..... Min master page (asp.net) - overskriver alligevel vinduets navn.

Tak for dit ping pong - smid et svar og du får dine points :-)
Avatar billede thesurfer Nybegynder
13. december 2006 - 22:10 #13
Et svar er hermed smidt.. :-)
Avatar billede thesurfer Nybegynder
13. december 2006 - 22:11 #14
Takker for points.. Hav en god aften! :-)
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