2014-06-27 54 views
0

當用戶單擊「x」關閉窗口時,我需要找到正確的代碼以使整個網站中的div框消失。用戶單擊時在所有網站頁面上關閉div x

作爲我正在構建的新網站的一部分,我添加了在必要時出現在所有網站頁面上的警告框。思考每個頁面頂部顯示的「新聞快訊」或「網站維護」警報,以便它對所有網站訪問者都很顯眼。

見例如:

enter image description here

當用戶單擊X,警告框應該從當前頁面消失,並且不顯示在本屆會議上,網站上的用戶訪問其他網頁。

每個警報框都通過PHP include嵌入到每個頁面的HTML中。

任何幫助將不勝感激。我在這個網站和網絡上的其他地方找到解決方案的努力沒有成果。謝謝。

+2

過程中使用this code,不顯示,我想一個cookie是唯一的辦法。 – Joe

+0

正如@Joe所說。您將檢查cookie並根據是否設置顯示或忽略通知。您也可以使用會話,這會持續您瀏覽器窗口打開的時間,然後在您下次打開它時恢復到原始狀態。 –

+0

我很欣賞這些反饋。非常感謝! ...瀏覽器會話很好。我希望用戶在下次訪問該網站時看到警告框,以防有新信息......任何人都可以將我指向正確的代碼以完成這一切嗎? –

回答

0

這是乾淨的一個<div>代碼JAVASCRIPT由ID:

document.getElementById('idName').innerHTML=""; 

例如:

<div id="toclose">This is a text</div> 
<input type="button" value="Close" onClick='document.getElementById("toclose").innerHTML="";' /> 

而且對於所有的session,你應該使用AJAX來創建包含了一個cookie爲了不再顯示消息。

阿賈克斯

基本功能:

<script>function hiddiv(file) { 

    var xhr = new XMLHttpRequest(); 
    xhr.open('GET', file); 
    xhr.send(null); 
} 

使用(例如):

<input type="button" value="Close" onClick="hiddiv('hidediv.php?id=2');" /> 

而對於PHP(hidediv.php):

<?php 
if(isset($_GET['id'])) 
{ 
    setcookie("blocdivid".$_GET['id'], "1", time()+3600); 
} 
?> 

}

+0

這個JS *非常*輸入很差......您應該修復它。至少對我而言,我希望能夠理解代碼在沒有經過十分鐘的情況下在幹什麼。另外,您應該指導OP如何使用AJAX創建cookie。 – Alonessix

+0

好的,我會做的。 –

0

你可以使用jqu隱藏然後通知cookie =當前會話是。並在顯示警報之前檢查此cookie。

你知道如何創建通知,以便您可以如果這是爲了訪問之間擴展當前會話

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

function clearCook(){ 
    document.cookie="notified="; 
} 
相關問題