2012-03-05 57 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的“外部页面”上下文就没有“内部页面”。你可以实现的一个选择是将内部页面变成'