XSP.getElementById和document.getElementById有什么区别?在我的测试中,两者似乎返回了相同的值(存储在字段中的值)。在为XPages编码时,哪一个应该是首选的?
发布于 2013-02-02 02:45:42
编辑的
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,因为它更短。永远不应该在XPages中使用document.getElementById,因为我们有dojo.byId。
更新
从Dojo 1.7开始,语法要复杂得多:
require(["dojo/dom"], function(dom){
// fetch a node by id="someNode"
var node = dom.byId("someNode");
});今天,我的同事指出Dojo2将不再支持当前简单的调用dojo.byId的方式。这意味着XSP.getElementById绝对是最佳选择,无论何时我们将require与ND9一起使用,我们都应该开始使用新的基于Dojo的语法。
发布于 2013-02-02 01:13:14
XSP包含使用Notes client (XPiNC)和web浏览器处理情况的代码。在XPiNC中不使用XSP调用可能会起作用,也可能会有副作用。
XSP.getElementById的工作方式与document.getElementById相同,不同之处在于它确保它可以跨具有相同功能的浏览器工作。
您可以在适用于getElementById的"XPages可移植命令指南“第184页中阅读有关XSP如何工作的更多信息。
https://stackoverflow.com/questions/14651328
复制相似问题