本文解答 JavaScript 的核心限制,包括无法直接访问打印机、文件或服务器文件,以及不支持多线程。同时梳理了 Netscape 和 Microsoft 早期浏览器对 JavaScript 版本的支持差异,强调跨平台编码策略。最后汇总了 Mozilla、MSDN 及多个社区提供的 JavaScript 文档、FAQ 和脚本资源,并介绍通过 window.print() 实现打印输出的方法。
JavaScript 的局限性
4. JavaScript 的局限性
问:JavaScript 程序无法执行哪些操作?
答:JavaScript 代码存在以下限制:
- 不能使用用户系统上或者客户端局域网中的打印机或者其他设备。
(解决方法,见打印JavaScript输出。)
- 不能直接访问用户系统或者客户端局域网中的文件;唯一例外就是可以访问浏览器的Cookie文件。
(解决方法,见文件访问部分。)
- 不能直接访问Web服务器上的文件。
(解决方法,见文件访问部分。)
- 实现多重处理或多线程。
若需访问文件或执行其他“特权”操作,可将 JavaScript 与 Java applet 结合使用。已签名的 Java applet 允许进行特权操作,同时 JavaScript 可与 applet 交换信息。但需注意,JavaScript/Java 最大的限制在于:用户可能始终禁用 JavaScript 或 Java,或两者均被禁用。
支持 JavaScript 的浏览器
5. 支持 JavaScript 的浏览器
问:哪些浏览器支持 JavaScript?
答:以下浏览器均支持 JavaScript:
- Netscape Navigator(从 2.0 版本开始)
- Microsoft Internet Explorer(从 3.0 版本开始)
- 其他获得许可或实现 JavaScript 解释器的浏览器及产品(例如 Opera)。
参见 JavaScript 的版本。
JavaScript 的版本与跨平台编码
6. JavaScript 的版本
问:JavaScript 有哪些版本?
答:JavaScript 是新兴的编程语言之一。其首次实现由 Netscape 社区于 1995 年完成。首个支持 JavaScript 的浏览器是 Netscape Navigator 2.0 beta 版。截至 1999 年,两大主流浏览器 Netscape Navigator 和 Microsoft Internet Explorer 对客户端 JavaScript 主要支持以下版本:
|
浏览器 |
年份 |
JavaScript版本 |
| Netscape Navigator 2.0 | 1995 | JavaScript 1.0 |
| Microsoft Internet Explorer 3.0 | 1996 | JavaScript 1.0 (JScript 1.0) |
| Netscape Navigator 3.0 | 1996 | JavaScript 1.1 |
| Netscape Navigator 4.0 | 1997 | JavaScript 1.2 |
| Microsoft Internet Explorer 4.0 | 1997 | JavaScript 1.2 (JScript 3.0) |
| Netscape Navigator 4.5 | 1998 | JavaScript 1.3 |
| Microsoft Internet Explorer 5.0 | 1999 | JavaScript 1.3 (JScript 5.0) |
不幸的是,Netscape 和 Microsoft 的 JavaScript 实现存在差异,即使版本号相同,具体实现也不一致。例如,IE3 中的 JavaScript 1.0 不同于 Netscape Navigator 2 中的 JavaScript 1.0;同理,IE4 中的 JavaScript 1.2 也与 Netscape Navigator 4 中的 JavaScript 1.2 不同。
除上述版本外,第三方也可创建自己的 JavaScript 实现,或获得 Microsoft 或 Netscape 的 JavaScript 技术授权。例如,Opera 浏览器支持 JavaScript。
跨平台编码是什么意思?从本质上说,你必须使用以下一种技术:
- 仅使用所有浏览器支持的 JavaScript 语言子集,并且/或者
- 针对不同浏览器编写不同代码,并在运行时检测实际浏览器
JavaScript 文档资源
7. JavaScript 的文档
问:我从哪里获取 JavaScript 的文档?
答:在线 JavaScript 文档可从以下网站找到:
- http://www.mozilla.org/js/language/ - Mozilla.org JavaScript 资源页。
- http://msdn.microsoft.com/en-us/library/72bd815a.aspx - MSDN 库中开发工具和语言部分的 JScript。
- http://msdn.microsoft.com/en-us/library/hbxc2t98.aspx - MSDN 库中 Web 开发和脚本中的 JScript。
此外,你还可以从以下网站找到 JavaScript 的讨论、在线指南、链接、代码示例及成百上千有用的脚本(此列表并不完全,仅作为起点):
- http://www.WebReference.com/programming/JavaScript/ - 指南和深度讨论。
- http://www.irt.org - 几种不同的 FAQ,包括 JavaScript。
- http://www.JavaScripts.com - 很多脚本和代码示例。
- http://www.JavaScripter.net/faq/ - 这个 FAQ。
打印 JavaScript 输出
8. 打印 JavaScript 输出
问:如何打印 JavaScript 输出?
答:JavaScript 程序无法直接访问打印机。不过,用户可以通过浏览器菜单中的“文件 | 打印”(或使用快捷键,在 Windows 上为 Ctrl + P)打印网页上的任何内容,包括 JavaScript 程序的输出。
如果用户需要经常打印你的脚本输出,你可以:
- 提示他们使用“文件 | 打印”菜单,并且/或者
- 使用 window.print() 方法打开打印窗口。
另外,你的脚本可以在一个单独的浏览器窗口中生成打印内容(参见下面的示例)。
示例:此脚本生成乘法表,将其输出到一个新的浏览器窗口,并向用户解释如何打印。