组合由多个组件呈现的不同javascript对象

时间:2008-10-12 22:37:25

标签: javascript jsf

我有一个从服务器端渲染器写入/生成javascript的组件。该组件可以在同一页面中多次使用。但是,一旦页面被加载,我必须收集页面中这个多个组件所写的所有变量或JSO。我怎么能这样做,以便我将收集所有变量或JSO? 对于例如如果这个组件(比方说)在页面中使用了两次,那么它会在客户端/浏览器上发出两个javascript块 -      var arr1 = new Array ['First','Second']和      var arr2 = new Array ['Third','Fourth']。

为了进行最终渲染,我必须将这两个数组合并。

2 个答案:

答案 0 :(得分:1)

您需要更加具体地了解您的问题,也许需要一个示例页面,但这里有一些想法。

如果你有一个服务器端组件在页面生成期间编写JavaScript,我会每次生成一个函数调用,如:

Component_appendArray(['First', 'Second']);
...
Component_appendArray(['Third', 'Fourth']);

然后确保在这些调用之前定义了函数Component_appendArray()

var globalArray = [];
function Component_appendArray(array)
{
     globalArray = globalArray.concat(array);
}

最后,globalArray应包含:

['First', 'Second', 'Third', 'Fourth']

希望这有帮助。

答案 1 :(得分:0)

虽然我不了解整个场景,但是我建议如果您要在整个HTML中打印变量以便在页面加载后使用它们,那么您可以使用隐藏的输入字段。我经常看到这一点,其中变量用于将值传递给页面底部的函数或脚本,但使用隐藏输入字段的值允许您从内容区域中获取所有脚本。它提供了一个更清洁的解决方案。