2016-07-26 73 views
0

我想添加一個年齡驗證彈出窗口到我的網站。它需要記住cookie,以便每次有人點擊不同的頁面時不會詢問。餅乾似乎工作正常,但重定向鏈接不起作用。當彈出彈出窗口,你不打開/取消它不重定向到谷歌。它只是進入頁面。另外,「var answer = confirm('你是18歲還是更老?');」件似乎並沒有給我一個是或否的選擇,只是一個好的和取消。不知道我做錯了什麼。javascript重定向不起作用

<script type="text/javascript"> 
function setCookie(cname, cvalue, exdays) { 
    var d = new Date(); 
    d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); 
    var expires = "expires=" + d.toGMTString(); 
    document.cookie = cname + "=" + cvalue + "; " + expires; 
} 

function getCookie(cname) { 
    var name = cname + "="; 
    var ca = document.cookie.split(';'); 
    for (var i = 0; i < ca.length; i++) { 
     var c = ca[i]; 
     while (c.charAt(0) == ' ') c = c.substring(1); 
     if (c.indexOf(name) == 0) { 
      return c.substring(name.length, c.length); 
     } 
    } 
    return ""; 
} 

var ofAge = getCookie("ofAge"); 
if (ofAge != "true") { 
    var answer = confirm('Are you 18 or older?'); 
    if (answer = true) { 
     setCookie("ofAge", "true", 1); 
    } else { 
     window.location = "http://www.google.com"; 
    } 
} 
</script> 
+1

'答案=真正的<---賦值與比較 – zerkms

+0

沒有辦法使內建的'confirm()'函數使用「是」/「否」按鈕,它總是使用「確定」/「取消」。 – nnnnnn

回答

0

當彈出彈出,你打無/取消它不重定向到 谷歌。

變化:

if (answer = true) {...} 

這樣:

if (answer) {...} 

你的原代碼分配(這就是=確實在Javascript),而不是比較。由於作業結果始終爲true,因此您的if聲明總是會評估爲真,因此您絕不會碰到else條款。另外,既然你知道你有一個布爾值,你只需要做if (answer)就好 - 不需要指定true部分。


此外, 「VAR答案=確認( '你是18歲?');」件 似乎並沒有給我一個是或否的選擇,只是一個好的和 取消。不知道我做錯了什麼。

confirm()函數始終顯示「確定」和「取消」。它不使用「是」和「否」。這不是一個選項。

0

檢查您的比較運算符。它應該是「==」而不是「=」。 即

var answer = confirm('Are you 18 or older?'); 
if (answer == true) { 
setCookie("ofAge","true",1); 
} else { 
    window.location="http://www.google.com"; 
} 
0

問題#0:跨源

你重定向到http://google.com。由於安全問題,在JavaScript中,你只能真正處理你自己的域名。重定向到一個頁面上你的網站

問題1:===

這是你的問題的殘餘。您正在分配對true的回答,而不是讀取其值。使用if(answer == true)或者只是if(answer)

問題2:確認

您不能更改的按鈕上的文字的confirm()對話框(或與此有關的任何對話)。我建議你做的是以下任一種:

解決方案2.0:說「你必須年滿18歲才能繼續」。不要問「你是18歲以上?」我們改寫這個問題要由OkCancel

解決方案來回答2.1:問他們的年齡,和比較:

var age = prompt("How old are you?") 
if (age => 18) {...} else {...} 

希望我能有所幫助