【问题标题】:Lotus Notes hide/show divLotus Notes 隐藏/显示 div
【发布时间】:2010-11-02 09:03:21
【问题描述】:
我无法在 lotus notes 6.5 电子邮件中制作一小段 javascript。
我正在构建一个 html,通过邮件将其作为 html 发送,并且在里面我想有一些链接来隐藏/显示一些 div。
我尝试使用document.getElementById,但是当我点击链接时出现以下错误:
"document.getElementById is not a function".
我正在考虑使用document.getElementById(id).style.display='none'; 来隐藏它(如果我可以管理 div)。
任何想法如何显示/隐藏我的 div?
【问题讨论】:
标签:
javascript
lotus-notes
lotus
【解决方案1】:
Lotus Notes 中的 HTML 引擎与您在浏览器中获得的完全不同。我相当肯定错误消息是正确的,当它说“document.getElementById 不是一个函数”时——Notes 电子邮件中几乎不支持 JavaScript。
如果您需要在 Notes 中隐藏/显示某些内容,则必须创建一个带有操作和隐藏公式的 Notes 表单才能获得相同的效果。然后可以使用嵌入到电子邮件中的表单发送电子邮件,当收到电子邮件时,将打开该表单而不是典型的备忘录表单。
请注意,大多数电子邮件客户端(Outlook 等)不太可能支持 JavaScript,因为它会打开安全漏洞。向用户发送链接,然后让他们打开网页或 Notes 数据库,您可以更好地控制向他们呈现内容的方式。
【解决方案2】:
问题的根源在于 Notes 不显示 HTML*。为了显示 HTML 格式的 MIME 电子邮件(或任何其他内容存储为 MIME 和 HTML 的富文本字段),必须首先将内容转换为 Notes 富文本(复合数据或 CD)格式。静态 HTML 的转换这些年来改进了很多,但是一旦转换完成,就没有 HTML 文档可以修改了。显然,您的链接/操作已正确转换为其 Notes 等效项,但 Notes 客户端中没有 DOM 方法的挂钩。 JavaScript 几乎仅限于操作字段值(通过document.forms[0].LiteralFieldName 访问方法)、交换图像(通过document.images 集合)和窗口对象方法的一小部分。
*可以在 Notes 客户端中查看纯网页,但它使用的是完整选项卡中的 IE ActiveX 控件——它本身不能用于呈现文档的一部分。
【解决方案3】:
它可能不适合您的 HTML 需求,但可能会帮助您隐藏/显示内容:
- 在新邮件中,选择要隐藏/显示的内容
- 点击创建/部分
- 您还可以在部分的属性中定义此部分的名称
(在 Lotus Notes 8.5 中工作)