网络开发人员常见问题解答

简介

  1. 谷歌浏览器揭秘
  2. 何处可以找到有关其他浏览器的信息?

用户代理

  1. 谷歌浏览器的用户代理字符串是什么?

语言编码

  1. 谷歌浏览器未正确显示字符
  2. 无法使用 JavaScript (document.write) 声明编码
  3. 谷歌浏览器显示的是“%B1%C1%C3%E5”,而非两个汉字

脚本与网络应用程序

  1. 我的 ActiveX 控件未加载
  2. 我的 JavaScript 未正确执行

呈现与浏览器行为

  1. 我的网站在谷歌浏览器中的呈现情况与 Internet Explorer 中不同
  2. 如何在谷歌浏览器中测试我的网站?
  3. 外部样式表中的字体规范没有生效
  4. 网站的弹出式窗口未在谷歌浏览器中显示
  5. 我受 SSL 保护的网站在谷歌浏览器中显示感叹号,而非锁头符号
  6. 谷歌浏览器不支持 HTML5 数据库 API
  7. 如何自定义指向我网页的谷歌浏览器快捷方式的外观与功能?
  8. 我的网页如何在一个单独进程中打开新标签页?

搜索

  1. 输入 Intranet 网址会显示搜索结果页,而非 Intranet 网站
  2. 如何将我的网站搜索纳入谷歌浏览器的搜索选项?

简介

1. 谷歌浏览器揭秘

借助于谷歌浏览器所包含的众多功能,网站管理员可向最终用户提供更好的使用体验。谷歌浏览器内置了 Gears,能让网站管理员充分利用离线存储等 API 功能。另外,用户还可以选择以极简用户界面模式启用谷歌浏览器 - 在该模式中,除标题栏之外,别无他物,这样在谷歌浏览器中就能像使用“桌面”应用程序那样使用网络应用程序。

谷歌浏览器还使用了全新的 JavaScript 引擎 (V8),新引擎的运行速度远高于现在的 JavaScript 解释器。也就是说,您可以突破以往速度与处理能力的限制,生成更复杂且内容更丰富的 AJAX 应用程序。最后一点,谷歌浏览器是建立在 WebKit 的基础上,所以当推出 CSS3 功能时,谷歌浏览器用户即可受益于添加到 WebKit 的这些 CSS3 功能。

2. 何处可以找到有关其他浏览器的信息?

有多种其他浏览器可供选择。请到下列网站查找一些应用广泛的浏览器的相关信息:

用户代理

3. 谷歌浏览器的用户代理字符串是什么?

谷歌浏览器的用户代理字符串是:

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.X.Y.Z Safari/525.13.

谷歌浏览器与 Apple 的 Safari 等其他浏览器一样,使用 WebKit 呈现引擎。网页在谷歌浏览器中的外观应与在其他以 WebKit 为基础的浏览器中相同。要找出这些浏览器,可在用户代理字符串中查找 webkit ,而不是使用具体浏览器名称(如谷歌浏览器或 Safari)。

语言编码

4. 谷歌浏览器未正确显示字符

为了协助浏览器正确呈现内容,应在文档来源顶部提供内容与字符编码信息。如果您使用的是帧或 iframe,也请在这些帧的来源顶部指定编码。部分浏览器(包括谷歌浏览器在内)无法解读深藏在文件内部的编码声明(例如位于 CSS 或文档 head 部分中的脚本之后)。

以下是效果较好的编码位置的示例:

<html>
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
      <script type="text/javascript">
      ... 您的 JavaScript 代码 ...
      </script>
      .......

也请确认您的网络服务器未发送相冲突的 HTTP 标头。网络服务器发送的标头会覆盖您网页中的任何字符集声明。

5. 无法使用 JavaScript (document.write) 声明编码

谷歌浏览器不会读取用 document.write() 声明的编码信息。举例来说,如果使用此方式在 iframe 中进行编码声明,呈现 iframe 时可能会看到乱码。而不是:

frame1.js

document.write("<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">");
      ... 其他 JavaScript 代码 ...

...我们建议使用下列方式:

frame1.html

<html>
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
      <script type="text/javascript">
      ... 您的 JavaScript 代码 ...
      </script>
      ...

6. 谷歌浏览器显示的是“%B1%C1%C3%E5”,而非两个汉字

谷歌浏览器对网址内的查询参数采用百分号编码方式。处理这一数据之前,请确认您服务器端的脚本可对百分号编码字符进行正确解码。

脚本与网络应用程序

7. 我的 ActiveX 控件未加载

应指定插件的 NPAPI 版。

在 Windows 平台上,只有 Internet Explorer(以及以 Internet Explorer 为基础建立的浏览器)支持 ActiveX。谷歌浏览器、Mozilla Firefox、Apple Safari 与其他浏览器都不支持 ActiveX。这些浏览器使用 Netscape 插件应用程序编程界面(Netscape Plugin Application Programming Interface,NPAPI)。

8. 我的 JavaScript 未正确执行

在谷歌浏览器中,可采用以下几种方式查看 JavaScript 错误并进行调试:

  • JavaScript 控制台:点击网页菜单,然后依次选择开发人员 > JavaScript 控制台。可在此处查看 JavaScript 执行中的错误,并输入其他要执行的 JavaScript 命令。
  • JavaScript 调试程序:请进入网页菜单图标 > 开发人员 > 调试 JavaScript。可在调试程序所提供的命令提示中设置断点、向后追踪与其他功能。在调试程序命令行输入 help 即可开始使用。

呈现与浏览器行为

9. 我的网站在谷歌浏览器中的呈现情况与 Internet Explorer 中不同

谷歌浏览器与 Internet Explorer 使用不同的呈现引擎,因此对网页的显示可能有所差异。Apple Safari 与谷歌浏览器使用相同的呈现引擎 (WebKit),应以相同方式显示网页。

10. 如何在谷歌浏览器中测试我的网站?

有几项工具可协助您在谷歌浏览器中测试您的网站:

  • 网络检查器
    右键点击网页上任何组件,启动网络检查器。可看到与所点击组件相关的元素及资源,包括 DOM 层次结构视图与 JavaScript 控制台。
  • 任务管理器
    选择网页菜单图标,然后选择开发人员 > 任务管理器(或按下 Shift+Esc)。任务管理器会显示谷歌浏览器中所有正在运行的进程以及这些进程占用的资源(内存、CPU 和网络)。
  • JavaScript 调试程序
    选择网页菜单图标,然后选择开发人员 > 调试 Javascript。这会启动可附加到现有进程的 JavaScript 调试程序。

11. 外部样式表中的字体规范没有生效

请确认外部样式表使用的是正确的字符集与 content-type。应该使用 text/csstext/css;charset=X

请尽量不要在 HTTP 标头中指定样式表的字符集;而应将声明添加到 CSS 样式表的最前端(不要有空格和分行等前导字符),如下所示:

@charset "xxx"

未指定编码信息可能导致无法正确解析样式表。

要了解有关此主题的详情,请访问“万维网联合会”(World Wide Web Consortium) 的文档,网址是:http://www.w3.org/TR/CSS21/syndata.html#charset

12. 网站的弹出式窗口未在谷歌浏览器中显示

谷歌浏览器的默认行为是将弹出式窗口最小化,然后仅在浏览器窗口右下部分显示其标题栏。用户可以将标题栏拖动到较适合观看的位置,然后查看弹出式窗口的内容。这样做允许加载弹出式窗口,作到不影响网站中依赖弹出式窗口的功能。也能防止用户不希望看到的弹出式窗口遮盖网页,干扰用户。

13. 我受 SSL 保护的网站在谷歌浏览器中显示感叹号,而非锁头符号

这表示网页对 SSL 的使用出现了问题。点击谷歌浏览器中的感叹号,会得到有关此问题的详情。问题通常是出在网页的混合内容上 - 例如,顶级网页是通过 HTTPS 提供,同时受 SSL 保护,但也采用 HTTP 方式在网页上纳入了图片、脚本或 CSS 等元素。所有内容都必须通过 HTTPS 提供,才会显示锁头符号。

14. 谷歌浏览器不支持 HTML5 数据库 API

谷歌浏览器小组计划在以后的版本中支持 HTML5 数据库 API 以及 WebKit 所支持的其他 API,包括 offline 与 worker。

15. 如何自定义指向我网页的谷歌浏览器快捷方式的外观与功能?

谷歌浏览器用户只要从网页菜单图标中选择创建应用程序快捷方式,即可为任何网页创建快捷方式。默认情况下,新快捷方式会选用所指向网页的标题和图标。

通过在文档的 <head> 部分插入特定元标记,可为指向您网页的谷歌浏览器快捷方式指定标题、说明及网址。

要自定义: 标记 示例
快捷方式标题 application-name <meta name="application-name" content="Gmail"/>
说明(用于使用偏好面板等能提供更多空间的位置) 说明 <meta name="description" content="Google 提供电子邮件服务的方式"/>
点击快捷方式时所打开的网址 application-url <meta name="application-url" content="http://www.gmail.com"/>
快捷方式图标   <link rel="icon" href="gmail_32x32.png" sizes="32x32"/>
<link rel="icon" href="gmail_48x48.png" sizes="48x48"/>

例如:

<head>
      <meta name="application-name" content="Gmail"/>
      <meta name="description" content="Google 提供电子邮件服务的方式"/>
      <meta name="application-url" content="http://www.gmail.com"/>
      <link rel="icon" href=gmail_32x32.png sizes="32x32"/>
      <link rel="icon" href=gmail_48x48.png sizes="48x48"/>
      </head>

这些标记与 Gears 桌面 API 的标记非常类似。详情请参阅“Gears 桌面 API”文档。

16. 我的网页如何在一个单独进程中打开新标签页?

谷歌浏览器为多进程架构,这意味着各标签页可在相互独立的进程中运行,这些进程也可独立于主浏览器进程。会从网页中繁衍出新标签页,不过,通常会在同一进程中打开这些标签页,以便初始网页使用 JavaScript 访问它们。

如果希望在一个单独进程中打开新标签页:

  • 请以 about:blank 为目标打开新标签页。
  • 将新打开标签页的 opener 变量设置为 null,这样它将无法访问初始网页。
  • about:blank 重定向到与繁衍出弹出式窗口的网页有不同域名、端口或协议的任何网址。举例来说,如果繁衍出弹出式窗口的网页位于 http://www.example.com/
    • http://www.example.org 是不同的域名
    • http://www.example.com:8080 是不同的端口
    • https://www.example.com 是不同的协议

谷歌浏览器会将这些操作视为新、旧网页应相互隔离的提示,并尝试以独立进程加载新网页。

可使用下列代码段完成所有步骤:

var w = window.open();
      w.opener = null;
      w.document.location = "http://different.example.com/index.html";

搜索

17. 输入 Intranet 网址会显示搜索结果页,而非 Intranet 网站

当用户在地址栏中输入单一字词时,谷歌浏览器会使用用户的默认搜索引擎对该字词执行搜索并返回结果。同时,谷歌浏览器会针对 http://term 提交 HEAD 请求,以确认其是否为有效网站。如果谷歌浏览器收到 HTTP/2xx 响应(如 HTTP/200 OK),会询问用户是否改为访问该网站。若用户点击提示直接前往该网站,谷歌浏览器会将该网站设为以后请求该字词时的默认目标。

如果收到以下响应,谷歌浏览器也会显示提示:

  • HTTP/401 或 HTTP/407 响应
  • 终止出现上述任一响应的网页的 HTTP/3xx 重定向

应确保网络服务器正确响应 HEAD 请求,而不只是对网页的 GET 请求。

举例来说,如果企业在 http://project.intranet.example.com 有一个网站,而该企业网内的用户在地址栏中输入了 project

  • 谷歌浏览器会返回 project 这个字词的搜索结果
  • 同时,谷歌浏览器会确认 http://project 是否为有效网站。如果是,
  • 会显示提示,询问用户是否要访问 http://project
  • 如果用户点击提示直接前往 http://project,谷歌浏览器会将 http://project 设置为以后在地址栏中输入 project 时的目标

用户也可以覆盖默认(搜索)行为:只要输入 project/http://project,或选择 project/ 地址栏条目(而不是搜索 project)即可。

18. 如何将我的网站搜索纳入谷歌浏览器的搜索选项?

提供 OpenSearch 说明文档 (OSDD),可让谷歌浏览器在浏览器的搜索引擎列表中加入您的网站。有关 OpenSearch 的详情,请访问 http://www.opensearch.org