2009-07-17 61 views
3

我有以下設置,我需要知道如何堅持狀態。JavaScript變量範圍 - 持久狀態?

1.)外部網頁使用ajax來加載和顯示包含javascript的.jsp文件。 2.)完成此渲染後,必須調用.jsp文件中的JavaScript,以根據渲染期間發生的結果執行操作。具體來說,文檔對$(document).ready執行操作,並且這些操作決定了稍後函數調用必須完成的操作。

我的問題是這樣的:如何在頁面加載時持久化數據和狀態?我想是這樣的:

外部: 阿賈克斯test.jsp的

內部test.jsp的

var saveMe = {}; 

function getsCalled() 
{ 
    saveMe = {'a':function(){return false;}}; 
} 

function needsData() 
{ 
    //??? 
} 

後來...
外部:

needsData(); 

沒有我似乎嘗試工作。在這種情況下堅持國家的最佳方式是什麼?

+0

在您的示例中`needsData`將有權訪問`saveMe`變量。 「什麼都沒有用」是什麼意思? – Blixt 2009-07-17 15:44:42

+0

沒有嘗試保存數據正在工作。 needsData不能訪問saveMe。 in getsCalled(),我設置needsData.saveMe = {}來解決這個問題。 – 2009-07-17 15:55:17

回答

0

使變量成爲函數對象的一員可以很好地工作。

1

如果您想了解關於範圍讀取this。它可能會幫助你弄清楚發生了什麼。

0

你試過在$(document).ready之外聲明saveMe嗎?然後,您應該能夠更改$(document).ready內部以及外部腳本中的值。我不確定ajax調用的javascript變量是如何工作的,所以我不確定這是否真的有效。