2012-03-05 56 views
0

我的問題有點難以解釋,但我會嘗試。 我有2個jsp頁面Outer.jsp和Inner.jsp包含頁面javascripts與外部頁面衝突javascripts

Outer.jsp

腳本:SRC = 「tabs.js」

VAR PageTabs = 「TAB1」

@包括 「Inner.jsp」

Inner.jsp

腳本:SRC = 「tabs.js」

VAR PageTabs = 「TAB2 TAB3〜〜TAB4」

兩個JSP頁面使用相同的tabs.js來渲染頁面上的一些標籤內容。 「PageTabs」變量是tabs.js使用的許多常用變量之一。因此,渲染時會發生什麼,即使在渲染Outer.jsp的選項卡時,tabs.js也會使用最新的「PageTabs」變量,即我們的var PageTabs =「Tab2〜Tab3〜Tab4」。

注意:頁面變量和tabs.js是從客戶端接收到的標準元素的一部分。所以他們必須被用來爲應用提供相同的外觀和感覺。 我需要的是一種將「Inner.jsp」與訪問「Outer.jsp」腳本隔離的方法。這將防止tab元素對使用哪些變量感到困惑。

我希望我有點清楚。請讓我知道是否需要提供更多說明。謝謝。

回答

0

JavaScript在頁面內被自上而下地解釋,因此您的第二個PageTabs值將覆蓋第一個值。一種選擇是爲變量使用不同的名稱(並參數化tabs.js函數,而不是依賴於全局變量)。

+0

是的,我明白。不幸的是屏幕上有很多共享元素。我知道這是一個糟糕的設計,但我必須忍受這一點。內部頁面是否與外部隔離?否則,我將不得不完全重寫tabs.js – 2012-03-05 09:02:01

+0

正如我所說,只要它在同一頁面內運行,JavaScript的「外部頁面」上下文就沒有「內部頁面」。你可以實現的一個選擇是將內部頁面變成'