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

编写跨浏览器的 XForms(2)

编写跨浏览器的 XForms(2)

内容编辑准则准则 1:使用 XHTML 名称空间作为默认名称空间如果准备使用安装 formsPlayer 或 FormFaces 这类增件的 Microsoft Internet Explorer,编写时需要以 XHTML 名称空间作为默认的 XML 名称空间。为什么?Internet Explorer 不支持 XHTML,但是只要保证使用合法的 HTML 标签名并且没有 XML 名称空间前缀,就能够使用 HTML 处理程序。清单 3 给出了一个例子。
清单 3. 使用默认 XML 名称空间的 XHTML
1
2
3
4
5
6
7
8
9
<?xml version="1.0"?>
<html xmlns="http://www.w3.org/1999/xhtml"...more namespace declarations go here...>
<head>
...head contents go here...
</head>
<body>
...body contents go here...
</body>
</html>




提示:使用模式验证器(schema validator)和支持模式的编辑器很容易编写结构良好并且有效的 XHTML+XForms 内容。更多信息请参阅 。
准则 2:为 XForms 实例添加 XML 名称空间声明由于在 HTML 中使用 XML 的一些限制,必须在 XForms 实例元素上重复声明某些名称空间。具体情况取决于使用的特性和实例使用的名称空间。即 XML 实例使用的名称空间、XSI 前缀(XML Schema 实例)和 XSD 前缀(XML Schema)。表单出现问题的时候一定要想到这一点。
XForms 处理程序的激活与安装这一节给出一段简单的 ECMAScript 代码,可用于 XHTML 文件中执行适当的检查和进行定义好的动作。脚本文件名为 xforms-check.js。利用它可以简化表单代码的编写。只需要遵循本文列出的准则并把这段  包含到文档中即可。
前面的脚本经过修改后就变成了:
清单 4. 带有浏览器检查的 XHTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#
      

<?xml version="1.0"?>
<html xmlns="http://www.w3.org/1999/xhtml"
...more namespace declarations go here....>
<head>
<script src="xforms-check.js"></script>
...more head content go here...
</head>
<body>
...body contents go here..
</body>
</html>




注意:深入分析这段客户端 ECMAScript 之前,首先说明它如何确定使用的浏览器。大多数站点都提供了脚本或者准则来确定浏览器。下面的脚本采用了一种非常简单的方法识别浏览器,方法就是测试 navigator.appName。
现在看看各种不同的浏览器如何激活处理程序。在有些情况下,如果没有安装插件,我们还要讨论如何安装。
Mozilla Firefox首先看看 Mozilla Firefox。需要以下部分:
清单 5. 检查 Firefox 浏览器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
if (isFirefox()) {
if (hasMozXForms()) { message('Firefox: XForms add-on is installed'); return; }

var xpi ='';
var rel = '0.8';
var relName='Mozilla XForms ' + rel + ' Release Extension';

var relURL='...';
if (navigator.platform == 'Win32') {
xpi={relName : relURL + '_win.xpi'};
} else if (navigator.platform == 'Linux') {
xpi={relName : relURL + '_linux.xpi'};
} else if (navigator.platform == 'MacOSX') {
xpi={relName : relURL + 'macosx.xpi'};
}
/* If appropriate platform, start the installer. Let the
installer handle browser version checks. */
if (xpi != '') {
message('Firefox: Installing XForms add-on...');
InstallTrigger.install(xpi);
} else {
alert('Firefox: Mozilla XForms not available for your browser platform');
}




首先对 Firefox 执行浏览器测试,然后检查是否安装了 Mozilla XForms 增件。如果已经安装则返回,否则调用适当的 XForms 插件 XPI 的安装程序。
返回列表