2016-02-26 19 views
0

我有一個Drupal 7本地網站,它有一篇文章和導致該文章的第一頁上的彈出窗口。在那篇文章中,我也有一個按鈕,當用戶點擊按鈕時,網站要「記住」用戶並且不再顯示彈出窗口。我以爲我可以更改按鈕的文本並將其存儲爲cookie。 這是按鈕的代碼:按鈕點擊並保存Drupal 7上的cookie

<button id="test" value="test" onclick="Press()">Press Here</button> 
<script> 
function Press() { 
    var test= document.getElementById("test"); 
    test.innerHTML="Thank you"; 
    document.cookie = "Inner"= + test.value +"; expires=Fri, 5 Aug 2016 01:00:00 UTC;";} 
</script> 

這是外部JS文件的處理該彈出代碼:

 function openColorBox(){ 

if (document.cookie.length != 0){ 
    var buttonvaluearray = document.cookie.split("="); 
    document.getElementById("test").innerHTML = buttonvaluearray[1]; 
} 

if (test.innerHTML != "Thank you"){ 
     document.getElementById("popup").style.visibility = "visible"; 
     document.onclick= function(){ 
     document.getElementById("popup").style.visibility = "hidden"; 
    } 
    } 
} 
    setTimeout(openColorBox, 5000); 

但是,當我打開網頁,彈出的節目如常,但按鈕的文本立即從「Press here」更改爲「0; Drupal.toolbar.collapsed」。我是一名新的Web開發人員,所以我確定我用於創建/測試cookie的外部代碼或外部JavaScript文件的if語句的代碼有問題,但我無法發現錯誤。任何建議或意見?

回答

0

結案! 我所要做的就是在第一個腳本中使用JavaScript中的localStorage,然後在外部js文件中測試它以創建彈出窗口!

0

訣竅是在這裏..

,而不是在客戶端存儲的值,請其存儲在服務器端,並運行在每一頁上的檢查。

+0

這是怎麼完成的?你的意思是使用PHP?我想編輯這個特定的文章,所以我改變它的HTML代碼。這就是爲什麼我嘗試JavaScript –

+0

不,不,請不要去java腳本。這根本不是最好的做法。是的,您需要使用PHP會話來存儲值。 –

+0

雖然我不能在文章的html中使用php代碼,對吧?那麼,我必須更改template.php文件或其他東西?而且,有沒有我能做到這一點的例子?我的PHP知識不是很棒,你看。 –