2014-01-16 64 views
0

我有一個問題後,這是我的代碼:的Javascript留在網頁上點擊一個鏈接

<a href="Webshop.php" class="Button" onclick="myFunction()">Webshop</a> 

<script> 
    function myFunction() { 
     var r = confirm("If you leave this page your purchase will be gone!"); 
     if (r == true) { 
      window.location = "http://www.titansafes.sgr15.g-o.be/Webshop.php"; 
     } else { 
      return 
     } 
    } 
</script> 

如果您按一下按鈕,我得到警告,如果他們點擊確定,他們直接回網上商店,如果他們點擊取消,他們需要留在頁面上。但我怎麼能做到最好? 我試過Window.location(不工作),返回不起作用,這對我來說很重要。

+0

嘗試'返回false'。 – Vinay

+0

然後閱讀此:http://stackoverflow.com/questions/1357118/event-preventdefault-vs-return-false – Vinay

回答

1
<a href="Webshop.php" class="Button" onclick="myFunction();return false;">Webshop</a> 

<script> 
    function myFunction() { 
     var r = confirm("If you leave this page your purchase will be gone!"); 
if (r == true) { 
      window.location = "http://www.titansafes.sgr15.g-o.be/Webshop.php"; 
     } else { 
     } 
    } 
</script> 
+0

謝謝你的答案,事件沒有工作,但這樣做:D – Bondjens

+0

你可以刪除href =「Webshop.php」並添加javascript:void(0);要麼 # – Shn

0
<a href="javascript:void(0)" class="Button" onclick="myFunction()">Webshop</a> 
0
`<a href="Webshop.php" class="Button" onclick="myFunction()">Webshop</a> 
<script> 
function myFunction(event) 
{ 
event.preventDefault(); 
var r=confirm("If you leave this page your purchase will be gone!"); 
if (r==true) 
{ 
window.location ="http://www.titansafes.sgr15.g-o.be/Webshop.php"; 
} 

} 
</script>` 
0

這是最好不要使用return false;,但相反在事件處理函數中調用該被傳遞給它的事件對象參數的方法的preventDefault。事件對象是傳遞給每個事件處理函數的單個參數。其中兩個重要的方法是preventDefault,它可以停止默認的事件動作(在本例中爲導航,因爲它是一個鏈接)。第二個重要的方法是stopPropagation,它將停止事件在父元素上被觸發 使用return falsehttp://fuelyourcoding.com/jquery-events-stop-misusing-return-false/

那麼你的處理器應該是這個樣子(添加的preventDefault):

function myFunction(eventObject) { 
    eventObject.preventDefault(); 
    var r=confirm("If you leave this page your purchase will be gone!"); 
    if (r==true) { 
     window.location ="http://www.titansafes.sgr15.g-o.be/Webshop.php"; 
    } 
} 

而且實際上兩者都做,這是不是nesecerally你想要什麼,知道什麼時候使用什麼是重要的,作爲附註,儘量避免內聯事件,如:onclick="CODE"改爲使用: element.addEventListener() 方法和它的IE8和更舊的替代品。 http://robertnyman.com/2008/11/20/why-inline-css-and-javascript-code-is-such-a-bad-thing/

相關問題