解析自带的呢
偏方秘方 2021年09月06日 浏览:3 次
在写b/s应用的时候,经常有检查域有效性的需求。我们一般的做法是用写javascript函数检查域的有效性,通过后再提交,不通过则提示出错。
现在有这样一个需求,就是在b/s上检查notes自带的rtf javaapplet器内容。也就是说我们得想办法用js访问到这个notes器。
建一个最简单的表单,包含一个用javaapplet形式显示的 rtf域,名为MYRTF。在web上预览,查看源文件得到如下html代码:
HTML
HEAD
META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=GB2312\"
SCRIPT LANGUAGE=\"JavaScript\"
!--
document._domino_target = \"_self\";
function _doClick(v, o, t, h) {
var form = document._rtftest;
if (submit) {
var retVal = submit();
if (typeof retVal == \"boolean\" retVal == false)
return false;
}
var target = document._domino_target;
if (ef != null) {
if (rget != null)
target = rget;
} else {
if (t != null)
target = t;
}
rget = target;
form.__lue = v;
if (h != null)
tion += h;
bmit();
return false;
}
function _getEditAppletData(){
var form = document._rtftest;
for(i=0;ngth;i++) {
if(ements[i].editorApplet != null) {
ements[i].value = ements[i].tText(\"text//html\");
}
}
return true;
}
// --
/SCRIPT
/HEAD
BODY TEXT=\"000000\" BGCOLOR=\"FFFFFF\"
FORM onSubmit=\"_getEditAppletData(); return true;\" METHOD=post ACTION=\"/application/test/William/f/rtftest?OpenFormSeq=1\" NAME=\"_rtftest\"
INPUT TYPE=hidden NAME=\"__Click\" VALUE=\"0\"
APPLET NAME=\"lnaMYRTF\" CODE=\"ass\" CODEBASE=\"/domjava\" ARCHIVE=\"b\" ALT=\"Editor\" TITLE=\"rtftt\" WIDTH=\"100%\" HEIGHT=\"100%\" MAYSCRIPT
PARAM NAME=\"cabbase\" VALUE=\"b\"
PARAM NAME=\"locale\" VALUE=\"zh-cn\"
/APPLET
INPUT TYPE=hidden NAME=\"MYRTF\"
SCRIPT LANGUAGE=\"JavaScript\"
!--
document._itorApplet = aMYRTF;
// --
/SCRIPT
/FORM
则可以把车开到一望无际的大草原上 /BODY
/HTML
可以看到 domino为MYRTF域产生了两个元素。一个名为lnaMYRTF的APPLET和一个名为MYRTF的hidden input。并且通过js语句将这两个元素关联起来(document._itorApplet = aMYRTF)。
以上这些对我们来说只是表面现象,我们关心的问题在js函数_getEditAppletData()中得到解答。我们只要使用applet的.getText(\"text//html\")方法就可以得到applet的内容了。但是,用这种方法的得到的是rtf域中带格式的html内容(相当于innerHTML),如果我们想得到不带格式的文本内容可以用.getText(\"\")。
以下就是我用来判断rtf器是否为空的js语句:Empty=(tText(\"\").replace( /^\\s{1,}/, \"\" ).replace( /\\s{1,}$/, \"\" )==\"\")
至此问题解决。
回过头再看html源文件,我们可以看到domino对表单提交的处理。表单在提交时调用 _getEditAppletData()函数寻找所有有editorApplet关联的字段,然后将对应applet中的带格式的html内容赋值给对应字段,然后继续提交工作。
结论:
1. 很简单的问题被我写这么长,真是佩服自己*^_^*
2. 对domino自带的东西用html查看源文件,可能对解决问题会有帮助。
日照白癜风医院银川治妇科医院哪家好
中风康复治疗和护理

- 上一篇: 解析框架下的编程技术牛
- 下一篇 解析文件系统的
-
12部门共推中医药健康养老服务发展
2019-07-11
-
中医药治疗艾滋病试点成果可喜
2019-07-07
-
球核荚蒾的功效与作用
2019-07-06
-
用脑过度要注意补充坚果
2019-07-06
-
荷兰女王向黄春丽针灸师颁发勋章
2019-07-01
-
全国第四届平乐正骨学术思想研讨会在洛阳举
2019-07-01