0

XSP.getElementById和 和有什么不一样document.getElementById?在我的测试中,两者似乎都返回相同的值(存储在字段中的值)。为 XPage 编码时应该首选哪一个?

4

2 回答 2

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,因为它更短。document.getElementById永远不应该在 XPages 中使用,因为我们有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绝对是要走的路,require每当我们将 Dojo 与 ND9 一起使用时,我们都应该开始使用新的基于语法。

于 2013-02-01T18:45:41.943 回答
3

XSP 包含用于处理 Notes 客户端 (XPiNC) 和 Web 浏览器情况的代码。在 XPiNC 中不使用 XSP 调用可能会起作用或可能会产生副作用。

XSP.getElementById 的工作方式与 document.getElementById 相同,只是它确保它可以跨具有相同功能的浏览器工作。

您可以在 getElementById 的“XPages Portable Command Guide”第 184 页中阅读有关 XSP 工作原理的更多信息。

于 2013-02-01T17:13:13.610 回答