Toon posts:

[JS] window.open opent nieuwe tab

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het probleem is dat window.open (met vermelding van "_self") een nieuwe tab opent binnen chrome en safari (en waarschijnlijk ook IE).


JavaScript:
1
2
3
4
5
6
7
$(document).ready(function() {
      $('#language-switcher').polyglotLanguageSwitcher({
        onChange: function(evt){
        window.open("http://www.domein.com/"+evt.selectedItem), "_self";
        }
      });
    });


In plaats van window.open wil ik window.location.href gebruiken
JavaScript:
1
window.location.href = "....."; 
Maar hoe neem ik de variabele "evt.selectedItem" hierin mee?

[ Voor 3% gewijzigd door Verwijderd op 10-02-2015 14:35 . Reden: leesbaarheid ]


Acties:
  • 0 Henk 'm!

  • ThomasXCI
  • Registratie: April 2009
  • Laatst online: 08-10 12:05

ThomasXCI

Mine!

Je zou de gehele url eerst in een variable op kunnen bouwen en die variable vervolgens aan href property toewijzen.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben een PHP'er met 0 verstand van Javascript. Hoe kan ik dat uitvoeren?

Acties:
  • 0 Henk 'm!

  • ufear
  • Registratie: December 2002
  • Laatst online: 16-10 13:14
code:
1
window.location.href = "http://www.domein.com/"+evt.selectedItem;


Daarnaast staan de haakjes bij je window.open ook gruwelijk fout waardoor er nog meer mis zal lopen.

[ Voor 49% gewijzigd door ufear op 10-02-2015 14:42 ]


Acties:
  • 0 Henk 'm!

  • johnkeates
  • Registratie: Februari 2008
  • Laatst online: 04-07 16:30
Wat probeer je te doen? Window.open is om een nieuwe tab/window te openen en werkt bijna nooit om de pagina te verversen.

Gebruik location.href of een refresh ofzo.

Edit: Spuit 11 :+

[ Voor 6% gewijzigd door johnkeates op 10-02-2015 14:42 ]


Acties:
  • 0 Henk 'm!

  • ThomasXCI
  • Registratie: April 2009
  • Laatst online: 08-10 12:05

ThomasXCI

Mine!

Zo dus:

code:
1
2
3
4
5
6
7
8
$(document).ready(function() {
      $('#language-switcher').polyglotLanguageSwitcher({
        onChange: function(evt){
        var url = "http://www.domein.com/" + evt.selectedItem;
        window.location.href = url;
        }
      });
    });

Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

URL hoeft dan niet per se nog eens in een eigen variabele natuurlijk, dat is uiteraard wat de voorkeur geniet. :)

Acties:
  • 0 Henk 'm!

  • ThomasXCI
  • Registratie: April 2009
  • Laatst online: 08-10 12:05

ThomasXCI

Mine!

CptChaos schreef op dinsdag 10 februari 2015 @ 14:43:
URL hoeft dan niet per se nog eens in een eigen variabele natuurlijk, dat is uiteraard wat de voorkeur geniet. :)
Dat klopt, het resultaat is hetzelfde. Maar ik vind dit persoonlijk netter, doordat de declaratie gescheiden is van de aanroep.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
HelaasPindakaas schreef op dinsdag 10 februari 2015 @ 14:43:
Zo dus:

code:
1
2
3
4
5
6
7
8
$(document).ready(function() {
      $('#language-switcher').polyglotLanguageSwitcher({
        onChange: function(evt){
        var url = "http://www.domein.com/" + evt.selectedItem;
        window.location.href = url;
        }
      });
    });
DIt werkt uitstekend. Bedankt!

Toch vind ik het gek dat overal beweerd wordt dat window.open een link opent in dezelfde tab / window als je er maar "_self" achter zet.

http://stackoverflow.com/...me-window-and-in-same-tab

Acties:
  • 0 Henk 'm!

  • ThomasXCI
  • Registratie: April 2009
  • Laatst online: 08-10 12:05

ThomasXCI

Mine!

Verwijderd schreef op dinsdag 10 februari 2015 @ 15:02:
[...]


DIt werkt uitstekend. Bedankt!

Toch vind ik het gek dat overal beweerd wordt dat window.open een link opent in dezelfde tab / window als je er maar "_self" achter zet.

http://stackoverflow.com/...me-window-and-in-same-tab
Dat is ook zo, alleen jij hebt dit:

code:
1
window.open("http://www.domein.com/"+evt.selectedItem), "_self";


Terwijl de closing parenthesis achteraan zou moeten staan

code:
1
window.open("http://www.domein.com/"+evt.selectedItem, "_self");


De functie 'open' roep je aan op het object window. Deze functie verwacht 2 argumenten, namelijk als eerste argument een url en als tweede de naam van het window waarin de url geopend moet worden. Het tweede argument wordt niet meegegeven, omdat je vroegtijdig de functie aanroep sluit.

Zie verder Window.open op MDN

Acties:
  • 0 Henk 'm!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 06-10 22:29
HelaasPindakaas schreef op dinsdag 10 februari 2015 @ 15:14:
[...]
...Deze functie verwacht 2 argumenten, ...
[muggeziftmode]
Hij verwacht er 0 t/m 4
http://www.w3schools.com/jsref/met_win_open.asp
[/muggeziftmode]

Maargoed
@topicstarter:

Gebruik SVP gewoon window.location.href en niet window.open.
Dat is veel meer standaard.

De 'target' parameter (name in javascript) is al uit de html spec gehaald, en het zal me niets verbazen als de '_self' ook gewoon uit de javascript spec gehaald wordt op korte termijn.

This message was sent on 100% recyclable electrons.


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

HelaasPindakaas schreef op dinsdag 10 februari 2015 @ 15:14:
[...]


Dat is ook zo, alleen jij hebt dit:

code:
1
window.open("http://www.domein.com/"+evt.selectedItem), "_self";


Terwijl de closing parenthesis achteraan zou moeten staan

code:
1
window.open("http://www.domein.com/"+evt.selectedItem, "_self");
Dat is (net als een waarde toekennen aan window.location .href) verder niet anders dan hoe het in PHP zou moeten werken, dus ik vind het een beetje jammer dat Shoja zich verschuilt achter "0 verstand van javascript" in dit topic. Shoja, pas je een beetje op dat je niet te snel vraagt hoe iets moet en daarbij vergeet om zelf even na te denken? :)

BasieP schreef op dinsdag 10 februari 2015 @ 19:08:
[...]

De 'target' parameter (name in javascript) is al uit de html spec gehaald
Blijf je wel even up to date?

Note: The target attribute on the a element was deprecated in a previous version of HTML, but is no longer deprecated, as it useful in Web applications, particularly in combination with the iframe element.
Lijkt me heel sterk dat er iets uit javascript gehaald wordt dat in HTML gewoon blijft bestaan ;)

[ Voor 31% gewijzigd door NMe op 10-02-2015 19:18 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 06-10 22:29
mm feest.. aan uit aan.. lekker bezig w3..

This message was sent on 100% recyclable electrons.


Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
BasieP schreef op dinsdag 10 februari 2015 @ 20:24:
mm feest.. aan uit aan.. lekker bezig w3..
Andere groep mensen.

De mensen achter de HTML5 standaard zijn eem tikkie meer pragmatisch dan de XHTML lolbroeken die in hun zoektocht naar puurheid niet gehinderd werden door enige vorm van realiteitszin. (Wat ben ik blij dat de bom die gelegd werd onder XHTML 2 uiteindelijk ook tot gecontroleerde ontploffing gebracht is...)
Pagina: 1