2012-03-17 43 views
1

我已經創建了圖像滑塊。此滑塊出現在我網站的每個頁面上。有一個點擊事件與圖像滑塊中的每個圖像相關聯。在點擊任何圖像時,會存儲與該圖像相關的數據的變量(例如,藝術家姓名等,並且這些字段被隱藏)。如何保留JavaScript變量,即使我重新加載或重定向到任何其他頁面

單擊任何圖像時,頁面會被重定向到另一頁面,例如藝術家頁面。在藝術家頁面中顯示存儲的數據。圖像滑塊也出現在藝術家頁面中。

現在,問題是當我來藝術家頁面的變量不顯示,因爲js文件再次重新加載和所有數據都丟失。這兩個頁面的Javascript文件是相同的。事實上,我網站上的所有頁面都應該使用相同的js文件。但是,如果我單擊任何圖像,就會進入藝術家頁面,然後顯示數據。我希望數據必須保留並顯示,即使它被重定向到藝術家頁面。

我試過ready()事件,但沒有幫助。怎麼做?

P.S.該網站是使用Drupal 7創建的

+0

嘗試將數據作爲參數傳遞給新頁面,然後在頁面加載時將其分配給您的javascript變量 – 2012-03-17 09:24:35

回答

1

我假設你的數據沒有在服務器端處理。每個頁面訪問都不會保留JavaScript變量數據。這對每一頁都是一個全新的開始。

你應該使用cookies這個。 jQuery也有cookies插件,但我還沒有嘗試過(嘗試詢問Google)。另一種方法是使用HTML 5 Web storage,但請注意它是HTML5,非常新的功能。

基本上你想要做的事情是:

  1. 點擊項目
  2. 在餅乾
  3. 存儲數據
  4. 轉到下一頁
  5. 讀取cookie的
  6. 顯示
+0

作爲猜測,我相信數據正在服務器端進行處理,因爲作者提到Drupal 7。隱藏的表單字段也向我暗示傳遞數據的Drupal式的方式..但我想從OP的一些澄清將有助於 – badunk 2012-03-17 09:33:53

+0

感謝「餅乾」的想法:) – subhojit777 2012-03-17 11:21:12

0
數據

你不能直接。每個頁面加載都會清除Javascript狀態。

的選擇是:

  1. 而不是做一個完整的頁面重載的,看看你能不能做一些AJAX-Y更換內容
  2. 使用會話cookie來保持狀態
  3. 使用HTML 5本地存儲如果瀏覽器支持它
0

有很多方法可以實現這一點,但是,您的情況中的一種更簡單的方法可能是簡單地重新檢索數據。第一頁如何檢索變量?你使用Drupal的模板引擎將它們傳遞給客戶端嗎?它是否通過AJAX獲取原始JavaScript數據?

如果前者爲true,則可能需要修改Drupal中的模板呈現鉤子,以與第一頁相同的方式獲取數據並將它們傳遞到您的新頁面中。

如果後者是真的,只需使用jQuery的onReady重新請求數據,就像您提到的那樣。您可能仍然需要使用Drupal模塊將數據公開爲jQuery提供的web服務,或者您可以編寫自己的php page/drupal模塊,以便使用drupal的數據庫抽象手動從數據庫中獲取數據。

相關問題