我想爲我的網站創建一個歷史記錄對象,它應該類似於Javascript歷史記錄對象。在Coldfusion中創建類似於Object的Javascript歷史記錄
我想使用此對象爲我的網站創建上一個/下一個nevigational鏈接。 Javascript歷史對象的問題在於它基於Window對象,而不是網站特定的。使用這個對象點擊「上一頁」鏈接可能會導致離開我的網站。
在Coldfusion中創建歷史對象的最佳方法是什麼?
我想爲我的網站創建一個歷史記錄對象,它應該類似於Javascript歷史記錄對象。在Coldfusion中創建類似於Object的Javascript歷史記錄
我想使用此對象爲我的網站創建上一個/下一個nevigational鏈接。 Javascript歷史對象的問題在於它基於Window對象,而不是網站特定的。使用這個對象點擊「上一頁」鏈接可能會導致離開我的網站。
在Coldfusion中創建歷史對象的最佳方法是什麼?
防止人們離開您的網站是一個跛腳和煩人的事情要做。你有這樣做的好理由嗎?
因爲這個上一個鏈接是在我的網站。用戶通常希望通過下一個和上一個鏈接在站點內導航。 – user160820 2010-01-05 11:16:25
看着全球性的問題,聽起來像「我怎樣才能讓用戶上網我的網站更好?」我可以三個重要的答案:
請注意,歷史任務#3,而不是1或2解釋這一切的原因是你的歷史不應該成爲#1(絕對)和#2(有時可能)。
基本上,歷史可以以兩種方式存儲:僅用於當前會話(用於任何用戶)和會話之間(通常用於登錄用戶)。
最簡單實現第一種方式的方式是使用ColdFusion會話。當創建會話(onSessionStart()如果使用Application.cfc)初始化容器,我會使用數組。
考慮以下樣品:
<cfscript>
session.history = [];
</cfscript>
當用戶打開新的頁面(即使在新標籤中 - 這將啓動新的瀏覽器歷史) - 推頁面信息放入容器(頁應該包含鏈接和標籤的種類至少):
<cfscript>
page = {};
page.link = "/index.cfm?product=100";
page.label = "Product Foo";
ArrayAppend(session.history, page);
</cfscript>
最後,在頁面模板遍歷數組的地方,並顯示鏈接:
<cfloop array="#session.history#" index="page">
<div><a href="#page.link#">#HTMLEditFormat(page.label)#</a></div>
</cfloop>
很明顯,如果你想顯示上一個/下一個鏈接,你應該修改存儲歷史的方式,也許還保留當前頁面位置(數組),以選擇上一個和下一個元素。雖然作爲用戶我不會覺得這樣的功能很有用。
最後,如果您想要在會話之間存儲歷史記錄,只需將此數據集寫入由用戶標識(fk)標識的數據庫中並在用戶登錄時將其恢復。
請記住,強烈建議在閱讀/書寫時使用鎖定的密碼爲。
讀取會話變量時使用鎖定幾乎不再需要,除非您正在處理競爭條件鎖定以寫入會話,否則無需鎖定。 – ale 2010-01-05 14:05:34
您是否正在使用您網站上的鏈接/按鈕來充當後退按鈕?
如果是這樣,如果history-1不包含您的域名,您可以使用javascript隱藏您網站中的「上一個」鏈接/按鈕。
編輯 - 由於安全性,您不能使用歷史記錄對象,但可以使用document.referrer。
<head>
<script language="javascript">
function showBackLink(){
var ref = document.referrer;
var fromThisDomain = ref.indexOf("yourdomain.com");
if(fromThisDomain > 0){ // your domain was found, show the link
document.getElementById("backLink").style.display = "";
}else{ // your domain was not found, hide the link
document.getElementById("backLink").style.display = "none";
}
}
</script>
</head>
<body onload="showBackLink();">
<a ID = "backLink" href = "javascript: history.go(-1);">prev</a>
</body>
是的,我正在使用我的網站上的鏈接。 你能給我寫個例子嗎? – user160820 2010-01-06 09:55:15
問題在哪裏? – Henry 2010-01-05 09:41:03
你想阻止人們使用歷史按鈕離開你的網站? – 2010-01-05 09:58:32
是的,如果我可以阻止人們離開我的網站,這將是偉大的。 – user160820 2010-01-05 10:04:14