XSP.getElementById
和document.getElementById
之间有什么区别?在我的测试中,两者似乎都返回相同的值(存储在字段中的值)。在编写XPage时应该首选哪一个?
答案 0 :(得分:6)
<强>编辑强>
XSP.getElementById
与dojo.byId
相同,我相信它比document.getElementById
更广泛的浏览器。
以下是XSP.getElementById
的来源:
/**
* Convenience function for retrieving an element given its id in a browser independent manner.
*/
this.getElementById = function x_gbi(elementId){
return dojo.byId(elementId);
}
我想更好的未来XPage支持使用XSP.getElementById
(因为它们可能会更改它)而不是dojo.byId
可能是个好主意。我一直在使用dojo.byId
,因为它更短。永远不要在XPage中使用document.getElementById
,因为我们有dojo.byId
。
<强>更新强>
从Dojo 1.7开始,语法要复杂得多:
require(["dojo/dom"], function(dom){
// fetch a node by id="someNode"
var node = dom.byId("someNode");
});
今天我的同事指出 Dojo 2 将不再支持当前调用dojo.byId
的简单方式。这意味着XSP.getElementById
绝对是可行的方法,每当我们将Dojo与ND9一起使用时,我们就应该开始使用基于require
的新语法。
答案 1 :(得分:3)
XSP包含用于处理Notes客户端(XPiNC)和Web浏览器的情况的代码。在XPiNC中不使用XSP调用可能有效或可能有副作用。
XSP.getElementById与document.getElementById的工作方式相同,只是它确保它可以在具有相同功能的浏览器中运行。
您可以在getElementById的“XPage Portable Command Guide”中了解有关XSP如何工作的更多信息。