Lotus Domino BS开发:路径地址传递参数与处理中文乱码问题
版权申诉
100 浏览量
更新于2024-08-13
收藏 17KB DOCX 举报
"Lotus Domino BS开发中路径地址传递值的方法和解决乱码问题"
在Lotus Domino的浏览器(Browser-Side, BS)开发中,通过路径地址传递值是一项常见的需求。这种方式允许我们向表单或者代理传递参数,以便在新的窗口或当前页面执行特定的操作。以下是一种实现这一功能的常见方法:
首先,我们可以获取当前页面的完整URL,这可以通过JavaScript的`window.location.href`来实现。例如:
```javascript
var b = window.location.href; // 获取全路径
```
然后,如果需要提取`.nsf`文件的路径,可以使用字符串操作方法:
```javascript
var URL = b.substring(0, b.indexOf('.nsf') + 4); // 提取.nsf前的路径
```
在表单设计中,可以利用内置HTML和JavaScript来处理传递的值。例如,创建一个计算字段,根据不同的条件决定要传递的值:
```html
<script language='javascript'>
var NewDoc = "<计算的值>";
</script>
```
接着,根据`NewDoc`的值,决定打开新窗口并传递不同的参数:
```javascript
if (NewDoc == "1") {
var key = document.all("date_budget").value;
window.open("/weboa/aa.nsf/代理名?OpenAgent&Key=" + escape(key));
document.forms[0].调用保存代理的按钮名称.click();
} else {
var key = document.all("city_address").value;
window.open("/weboa/aa.nsf/代理名?OpenAgent&Key=" + escape(key));
}
```
在新窗口的代理中,我们需要获取传递过来的参数,这可以通过Notes API完成:
```lotusscript
Dim s As New NotesSession
Dim doc As NotesDocument
Dim Key As String
Set doc = s.DocumentContext '这里的doc是虚拟的,不是当前文档的doc
Key = Trim(StrRight(doc.Query_String_Decoded(0), "Key=")) '获取Key参数
```
然而,在传递包含中文字符的值时,可能会遇到乱码问题。这通常与编码设置有关。确保URL编码使用的是UTF-8,并在接收端正确解码。例如,当使用JavaScript的`encodeURIComponent`函数编码URL参数,然后在服务器端使用相应的解码方法。
对于上述代码中的问题,可以尝试修改打开新窗口的代码,使用`encodeURIComponent`来编码中文参数:
```javascript
var name = encodeURIComponent("陈华");
var age = encodeURIComponent("26");
var zy = encodeURIComponent("计算机");
window.open(URLPath + "?OpenForm&name=" + name + "&age=" + age + "&zy=" + zy, "", "status=no,resizable=yes,left=200,top=140,width=700,height=500");
```
在表单中,确保接收这些参数的字段有正确的编码设置,以防止乱码。同时,检查服务器和客户端的字符集设置是否一致,这通常是导致乱码的主要原因。
Lotus Domino BS开发中,通过路径地址传递值涉及JavaScript、Notes API以及可能的编码处理。理解这些概念并妥善应用,可以帮助你有效地在不同页面和组件间传递信息。
2022-03-01 上传
2022-03-01 上传
2022-03-01 上传
2022-02-26 上传
2022-02-26 上传
2022-02-26 上传
2022-03-01 上传
weijia3624
- 粉丝: 907
- 资源: 731
最新资源
- 北京大学软件与微电子学院 C编程 OJ习题 python.zip
- bzip2-1.0.6.tar.zip
- TypeScript语言教程.zip
- maple:类型安全,名称和格式一致的结构化日志记录包装程序,适用于SLF4J,非常适合您的日志记录聚合器
- OpenGL-实现视频播放(FFMpeg)
- 聊天宝
- Toggle Last Tab-crx插件
- python crasch course 2nd edition;python编程:从入门到实践习题解答.zip
- 基于jquery的优雅的开关按钮 honeySwitch
- 实时聊天:使用Socket.io和Reactjs进行实时聊天
- VC++ 信息加密聊天源代码
- puma:基于Web的LaTeX编辑器
- python的其他学习,像python编程入门挑战100题。及其他爬虫内容.zip
- devjobs:前端大师挑战赛
- drush-migrate-inspect:用于检查 Drupal Migrate 的命令行工具
- 个人技能服务信息响应式网页模板