[JS] window.location.href werkt niet in IE

Pagina: 1
Acties:
  • 2.243 views sinds 30-01-2008
  • Reageer

  • sMb.Blade
  • Registratie: Februari 2000
  • Laatst online: 06-05-2024
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
                        <tr>
                        <td>123krediet</td>
                        <td><a href="javascript:void(0);" onclick="javascript:perform('/debug/index.php?section=websites', 'edit', '2', 'false');">edit</a></td>
                        <td><a href="javascript:void(0);" onclick="javascript:perform('/debug/index.php?section=websites', 'delete', '2', 'true');">del</a></td>
                    </tr>   
                        <tr>
                        <td>hjj</td>
                        <td><a href="javascript:void(0);" onclick="javascript:perform('/debug/index.php?section=websites', 'edit', '4', 'false');">edit</a></td>
                        <td><a href="javascript:void(0);" onclick="javascript:perform('/debug/index.php?section=websites', 'delete', '4', 'true');">del</a></td>
                    </tr>   
                        <tr>
                        <td>blalbalbbbab</td>
                        <td><a href="javascript:void(0);" onclick="javascript:perform('/debug/index.php?section=websites', 'edit', '5', 'false');">edit</a></td>
                        <td><a href="javascript:void(0);" onclick="javascript:perform('/debug/index.php?section=websites', 'delete', '5', 'true');">del</a></td>
                    </tr>   
                        <tr>
                        <td></td>
                        <td><a href="javascript:void(0);" onclick="javascript:perform('/debug/index.php?section=websites', 'insert','false');">Insert</a></td>
                    </tr>


Mijn perform functie:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function perform(where, what, iid, msg) {
    
   if (msg == 'true') {

      if (confirm('zeker weten?')) {
         window.location.href = where+'&case='+what+'&iid='+iid;
        
      }
   } else {
            
      window.location.href = where+'&case='+what+'&iid='+iid;
   }
}

function redir(where) {
   window.location.href = where;
}


Dit werkt dus prima in firefox maar niet in IE6 (win2000).

Wanneer ik een item wil editen..komt er alleen javascript(void) in de status balk te staan..maar voert niets uit.

Wanneer ik in mijn if statement alert(where, what, iid, msg); doe werkt dit wel gewoon in IE, met de juiste waarden. Alleen hij redirect hem niet :(

Overal waar ik heb gezocht staat dat window.location.href gewoon moet werken.
als ik window.location.href = "http://www.google.com"; neer zet werkt dit ook niet.

[ Voor 58% gewijzigd door sMb.Blade op 03-04-2006 13:23 ]


  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
euh wat is er mis met:

window.location = 'http://tweakers.net';

zie ook:
google

[ Voor 70% gewijzigd door BasieP op 03-04-2006 13:19 ]

This message was sent on 100% recyclable electrons.


  • sMb.Blade
  • Registratie: Februari 2000
  • Laatst online: 06-05-2024
Geen idee :) Maar ook dat werkt niet ;(

edit: yup heb daar ook op gegoogled...maar niets werkt! :(

[ Voor 44% gewijzigd door sMb.Blade op 03-04-2006 13:20 ]


  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
sMb.Blade schreef op maandag 03 april 2006 @ 13:19:
Geen idee :) Maar ook dat werkt niet ;(
dan doe je wat anders fout..

damn wat zeg ik dit vaak:
ga debuggen!

gewoon alertjes plaatsen tot waar het goed gaat en post dan je probleem als max 5 regels code, ik ga echt niet je hele script doorsjouwen hoor, dat kan je prima zelf

om wat dingen te noemen:
wat meot ik met je php script? dis toch een JS probleem?
geef JS code en desnoods html (met JS aanroepen oid)

[ Voor 16% gewijzigd door BasieP op 03-04-2006 13:21 ]

This message was sent on 100% recyclable electrons.


  • sMb.Blade
  • Registratie: Februari 2000
  • Laatst online: 06-05-2024
BasieP schreef op maandag 03 april 2006 @ 13:20:
[...]


damn wat zeg ik dit vaak:
ga debuggen!

gewoon alertjes plaatsen tot waar het goed gaat en post dan je probleem als max 5 regels code, ik ga echt niet je hele script doorsjouwen hoor, dat kan je prima zelf

om wat dingen te noemen:
wat meot ik met je php script? dis toch een JS probleem?
geef JS code en desnoods html (met JS aanroepen oid)
PHP code = weg! Check startpost...das mijn HTML.

Zoals ik al zei: heb zeker gedebugged met alert boxjes...die voerde hij prima uit in mijn perform functie...alleen NIET de redirect...

"dan doe je wat anders fout.." joh ;)

[ Voor 8% gewijzigd door sMb.Blade op 03-04-2006 13:25 ]


  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
bij een onclick hoeft geen "javascript: " ofzo hoor, je kan direct de functie aanroepen :)


probeer dit eens als JS
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function perform(where, what, iid, msg) {
  alert(where);
  alert(what);
  alert(iid);
  alert(msg);
    
   if (msg == 'true') {

      if (confirm('zeker weten?')) {
         var tmp = where+'&case='+what+'&iid='+iid;
         alert(tmp);
         window.location = tmp;
      }
   } else {
      window.location.href = where+'&case='+what+'&iid='+iid;
     //waarom in godesnaam een else? je wilt toch dat dat ding dan 'niks' doet???
   }
}


verder nog een twee opmerkingen:
- waarom doe je true en false als strings doorsturen? das vrij euh 'slecht' eigenlijk.
- waarom staat er een / voor je url? ik neem aan dat debug een directory is? /debug is dus net zo nuttig als debug, en nog netter ook (zou niet de fout mogen zijn, maar toch)

[ Voor 108% gewijzigd door BasieP op 03-04-2006 13:31 ]

This message was sent on 100% recyclable electrons.


  • sMb.Blade
  • Registratie: Februari 2000
  • Laatst online: 06-05-2024
Oke done..krijg netjes 4 boxen met de waarden...en vervolgens staat er gewoon "Done" in de statusbalk.

Waarom een else? wanneer ik een false mee stuur dan voert hij de query uit zonder te vragen of ik het zeker weet. :)

Die slash komt van:

PHP:
1
<a href=\"javascript:void(0);\" onclick=\"perform('".$_SERVER['PHP_SELF']."?section=".$section."', 'edit', '".$result[$i]['id']."', 'false');\">edit</a>

[ Voor 255% gewijzigd door sMb.Blade op 03-04-2006 13:48 ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

sowieso moet je de default actie van je anchor (het uitvoeren van de href) cancellen.
otoh zou je je kunnen afvragen of je hier wel een anchor voor zou moeten gebruiken...

Intentionally left blank


  • sMb.Blade
  • Registratie: Februari 2000
  • Laatst online: 06-05-2024
crisp schreef op maandag 03 april 2006 @ 13:36:
sowieso moet je de default actie van je anchor (het uitvoeren van de href) cancellen.
otoh zou je je kunnen afvragen of je hier wel een anchor voor zou moeten gebruiken...
Wat bedoel je prcies?

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
een return false; onderderaan in je 'perform' functi ezetten

btw, wat doet 'redir' nu?

This message was sent on 100% recyclable electrons.


  • sMb.Blade
  • Registratie: Februari 2000
  • Laatst online: 06-05-2024
BasieP schreef op maandag 03 april 2006 @ 13:42:
[...]

een return false; onderderaan in je 'perform' functi ezetten

btw, wat doet 'redir' nu?
redit geeft die boxjes perfect weer...alleen geen redir :(

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Vwb het cancellen van de href bedoel ik dit:
HTML:
1
<a href="http://tweakers.net" onclick="window.location.href='http://sesamstraat.nl';return false">klik</a>

note de "return false" in de onclick handler.

Vwb het 2e bedoel ik dat anchors bedoelt zijn voor navigatie. In dit geval wil je een stukje script uitvoeren; ik zou daar een ander element voor gebruiken (een button bijvoorbeeld) omdat het resultaat van een klik anders is dan de gebruiker verwacht op basis van het feit dat het er uitziet als een link.

Sowieso moet je geen manipulerende acties achter een GET zetten, daar dien je een POST (en dus een formulier) voor te gebruiken.

Intentionally left blank


Verwijderd

Moet je niet ipv

code:
1
window.location.href = where+'&case='+what+'&iid='+iid;


doen

code:
1
window.location.href = ''+where+'&case='+what+'&iid='+iid;

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
en denk je dat zoiets een nuttig verschil zal opleveren?
(een lege string voor een andere string plaatsen dus)

[ Voor 36% gewijzigd door BasieP op 03-04-2006 14:06 ]

This message was sent on 100% recyclable electrons.


  • sMb.Blade
  • Registratie: Februari 2000
  • Laatst online: 06-05-2024
Heb alle opties geprobeerd..niets maar dan ook niets werkt :(

wtf !!

8)7

iig thanks alvast mensen :)

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Dit is over het algemeen de meest logische en simpelste manier:
HTML:
1
2
3
4
5
6
7
8
9
10
<a href="/debug/index.php?section=websites&amp;case=delete&amp;iid=2" onclick="return confirmation()">klik</a>
..
<script type="text/javascript">

function confirmation()
{
    return confirm('Zeker weten?)';
}

</script>

Maar nogmaals: manipulerende acties horen niet achter een link maar achter een (post)form.

[ Voor 4% gewijzigd door crisp op 03-04-2006 14:30 ]

Intentionally left blank


  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
crisp schreef op maandag 03 april 2006 @ 14:29:
Dit is over het algemeen de meest logische en simpelste manier:
[...]
net iets simpeler:
HTML:
1
<a href="/debug/index.php?section=websites&amp;case=delete&amp;iid=2" onclick="return confirm('zeker weten?')">klik</a>


@TS:
doe anders eens een testcase maken (dus ongeveer wat je hier aan code hebt even online gooien zodat we kunnen meekijken

[ Voor 24% gewijzigd door BasieP op 03-04-2006 14:33 ]

This message was sent on 100% recyclable electrons.


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

BasieP schreef op maandag 03 april 2006 @ 14:32:
[...]

net iets simpeler:
HTML:
1
<a href="/debug/index.php?section=websites&case=delete&iid=2" onclick="return confirm('zeker weten?')">klik</a>
Als je confirm-message in al deze gevallen hetzelfde is zou ik 'm toch in een functie zetten ipv elke keer herhalen voor een link ;)

Intentionally left blank


Verwijderd

BasieP schreef op maandag 03 april 2006 @ 14:06:
[...]

en denk je dat zoiets een nuttig verschil zal opleveren?
(een lege string voor een andere string plaatsen dus)
jazeker, kan me toch situaties herinneren dat het bij mij werkte op deze wijze

stel:
page = "pagina.html"
dan wordt je aanroep gezien als window.location.href = pagina.html
en niet als window.location.href='pagina.html'

tenminste dat denk ik.
kwaad kan het iig niet.

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

SpartaRotterdam: da's echt onzin ;)

Intentionally left blank


Verwijderd

alllrighty then! Mocht ik een keer nog zon situatie tegenkomen, dan zal ik zeker niet schromen ...
wellicht dat het iets anders was, maar goed :) Just trying to help

  • Sendy
  • Registratie: September 2001
  • Niet online
Waar SpartaRotterdam wel gelijk heeft is dat als je een aantal willekeurige variabele wil concateneren dat
code:
1
concat = var1 + var2;

iets heel anders kan zijn dan
code:
1
concat = '' + var1 + var2;

(In het bijzonder in een taal zonder type-checking.)
edit:

Het gebruiken van de String() functie maakt het inderdaad duidelijker. Bedankt Crisp.

[ Voor 18% gewijzigd door Sendy op 03-04-2006 18:21 ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Sendy schreef op maandag 03 april 2006 @ 17:10:
Waar SpartaRotterdam wel gelijk heeft is dat als je een aantal willekeurige variabele wil concateneren dat
code:
1
concat = var1 + var2;

iets heel anders kan zijn dan
code:
1
concat = '' + var1 + var2;

(In het bijzonder in een taal zonder type-checking.)
In dat geval is het wellicht duidelijker om ze gewoon door de String-functie te halen:
JavaScript:
1
concate = String(var1) + String(var2);

;)

[ Voor 8% gewijzigd door crisp op 03-04-2006 17:17 ]

Intentionally left blank

Pagina: 1