我有一个XPage,可用于编辑或只是根据用户的角色阅读。现在我需要实现这个功能。解决方案非常简单 - 只需删除添加,编辑和其他HTML元素即可。问题是我只能在页面加载时执行SSJS代码,而不能执行CSJS。当我尝试在SSJS中像document.
这样做时,它给了我一个可预测的异常 - document
没有被重新识别。如何在页面加载时执行它?
答案 0 :(得分:5)
请勿尝试从呈现的页面中删除HTML元素。
使用属性"呈现" 来确定应根据用户权限呈现哪些控件。 ("呈现"表示已创建并发送到浏览器。)
您可以在此处设置此属性
或在这里
在那里插入应该返回true(=可见)或false(=不可见)的SSJS代码。
答案 1 :(得分:4)
页面加载的顺序是(XPages事件以粗体显示):
如您所见,SSJS仅针对组件的服务器端映射运行,而不是针对客户端DOM运行。如果你想修改它,你可以使用onClientLoad但我不认为在部分刷新后运行。因此,对DOM的修改可能会在部分刷新后丢失(您需要检查)。如果您希望对DOM元素的更改保持不变,则有两个选项:
dojo.behavior
。 jQuery可能有一个可以使用的相应调用。 听起来你的优势在于客户端,所以前者可能是最好的选择。