2010-11-18 19 views
4

Pourquoi cela ne fonctionnera-t-il pas dans Safari?window.location.href ne fonctionne pas dans Safari

<script language="javascript" type="text/javascript"> 
function changeUrl(url) { 
    window.location.href='http://google.com'; 
    return false; 
} 
</script> 

<form action="#" onsubmit="changeUrl(this)" /> 
    <input type="Submit" value="Go" /> 
</form> 

Répondre

6

Safari semble ne pas aimer avoir le faux retour se produisent dans l'appel de fonction. Si vous le déplacez dans votre onsubmit sous le nom onsubmit = "openPop (this.action); return false;" alors Safari fonctionnera sans problème.

Éditer: Pour améliorer la réponse, onsubmit doit renvoyer false, donc openPop retournant false n'est pas suffisant. Vous pourriez juste l'avoir faire onsubmit = "return openPop (this.action);" bien que.

+0

+1 cela doit être cela. – karim79

0

Peut-être que cela fonctionnera:

<script> 
function popitup(url) { 
    newwindow=window.open(url,'name','height=200,width=150'); 
    if (window.focus) {newwindow.focus()} 
    return false; 
} 

// --> 
</script> 

Ensuite, utilisez ce code HTML:

<a href="popupex.html" onclick="return popitup('popupex.html')">Link to popup</a> 
+0

Et bien sûr, vous pouvez simplement l'exécuter "onload" au lieu de "onclick". – Blake

+0

mon nom de méthode était trompeur, je n'essaie pas d'ouvrir une nouvelle fenêtre, il suffit d'aller à une nouvelle URL – 99miles

-2

J'ai pu le faire fonctionner dans Safari en utilisant ce code.

if (app.Name == "Safari") { 
window.location ="your-url-here" 
}