如何从网络浏览器访问本地笔记数据库

How to access local notes database from web browser

我 运行 我在网络服务器上的应用程序: http://myhost.com/mydatabase.nsf/Home.xsp

在主页上,我有一个按钮,可以通过单击我想要访问本地 names.nsf 而不是 myhost.com 的按钮。

这些行失败了:

var namesDB:NotesDatabase = session.getDatabase("", "C:\notes\data\names.nsf");
var namesDB:NotesDatabase = session.getDatabase("Local", "C:\notes\data\names.nsf");

这一行 returns myhost.com Domino 数据库:

var namesDB:NotesDatabase = session.getDatabase(null, "names.nsf");

有没有其他方法可以打开本地PC上的NSF文件?

据我所知,您的尝试是不可能的。您的 XPages 代码在服务器上 运行ning - 您可能会在 PC 的浏览器中看到输出,但任何 SSJS 代码在服务器上 运行ning。所以它不知道你的本地 names.nsf 在哪里。这就像在服务器上为 运行 创建一个预定代理并访问您的本地 names.nsf - 它不知道您的 PC 在哪里。

CSJS 将 运行 在您的 PC 上,因此会知道您的 names.nsf 在哪里,但它无法打开 NSF。

在邮件首选项中,可以将联系人同步到您的邮件文件,这是能够在 iNotes 中访问它们所必需的。如果这样做,您可以查看您的邮件文件。这可能是最好的选择。

在那种情况下,服务器上的 XPage 运行ning 不知道客户端机器,代码 运行ning 完全在服务器上。因此,除非您可以使用请求机器的名称来执行文件系统引用(我不建议这样做)的特定公司设置,否则它是完全不同的。

不过,据推测,您可以 运行 XPiNC 中的应用程序 - 如果您愿意忍受那里的所有权衡,XPage 将以与正常情况相当的方式在本地计算机上执行笔记应用程序。

顺便说一下(这与 server/client 障碍无关),我认为这些字符串会有它们自己的问题:JavaScript 字符串中的反斜杠是一个转义字符,所以你' d 必须将它们加倍才能解析为单个反斜杠,例如 "c:\notes...".