XSP.getElementById vs document.getElementById

时间:2013-02-01 16:59:49

标签: javascript xpages

XSP.getElementByIddocument.getElementById之间有什么区别?在我的测试中,两者似乎都返回相同的值(存储在字段中的值)。在编写XPage时应该首选哪一个?

2 个答案:

答案 0 :(得分:6)

<强>编辑

XSP.getElementByIddojo.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如何工作的更多信息。