首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

编写跨浏览器的 XForms(3)

编写跨浏览器的 XForms(3)

Microsoft Internet Explorer接下来检查 Internet Explorer 并启用 formsPlayer,代码如下:
清单 6. Internet Explorer 浏览器检查
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
} else if (isIE()) {
var useFormsPlayer = 1;
if (useFormsPlayer) {
/* No need to test for formsPlayer, below code will handle */
var classId="CLSID:4D0ABA11-C5F0-4478-991A-375C4B648F58";
var fpCab="http://www.formsplayer.com/download/download/cab/formsPlayer.cab";
document.write('<object classid="'+classId+
'" height="0" id="formsPlayer"'+
'width="0" codebase="'+fpCab+
'" ><b>formsPlayer has failed to load!'+
' Please check your installation.</b></object>'+
'<?import namespace="xforms"'+
' implementation="#formsPlayer"?>');
message('IE: Enabling formsPlayer,'+
' may see additional messages if installation is needed.');
} else {
...
}




激活 formsPlayer 必须使用 <object> 把 CLSID 连接到本地 Windows® 注册表中的应用程序。我们可以通过引用 formPlayer 打包文件来自动安装该插件。
启用 formsPlayer 的操作说明请参阅 。
Opera 和 Safari按照上述配置表,浏览器 Opera 和 Safari 都使用 FormFaces。为此,首先检查 appName 然后在 HTML DOM 中包含 formsfaces.js 实现。将对 xforms-check.js 的引用换成对 FormFaces.js 的引用。下面的清单说明了如何动态添加 <script> 实现这一功能:
清单 7. Opera 和 Safari 浏览器检查
1
2
3
4
5
6
7
} else if (isOpera() || isSafari()) {
message('Opera/Safari: Enabling FormFaces');
var script = document.createElement('script');
script.src = 'FormFaces/formfaces.js'; /* Wherever FormFaces is installed */
script.type = 'text/javascript';
var head = document.getElementsByTagName('head')[0];
head.appendChild(script);




X-Smiles因为 X-Smiles 本身支持 XForms,默认情况下通知用户或者执行其他正确的动作:
清单 8. X-Smiles 浏览器检查
1
2
} else if (isXSmiles()) {
message('XSmiles: Builtin XForms support, no action taken.');




alphaWorks XML Forms 生成器如果使用过 IBM® alphaWork 工具集,就会理解本文中提到的 “Convert for XForms Renderer->” 动作是什么了。它可以修改默认名称空间、删除名称空间前缀并添加 “xforms-check.js” 脚本。该工具也非常适合开发 XForms 应用程序。更多信息请参阅 。
返回列表