您的位置:首页 > 理论基础 > 计算机网络

谷歌浏览器-网络开发人员常见问题解答

2012-06-18 16:33 369 查看


简介

谷歌浏览器揭秘

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


用户代理

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


语言编码

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

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

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


脚本与网络应用程序

我的 ActiveX 控件未载入

我的 JavaScript 未正确执行


呈现情况与浏览器行为

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

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

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

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

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

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

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

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


搜索

输入 Intranet 网站网址后显示的是搜索结果页,而非 Intranet 网站

如何将我的网站添加到谷歌浏览器的搜索选项中?


简介


1. 谷歌浏览器揭秘

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

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


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

有多款其他浏览器可供选择。请通过下列网站了解一些使用比较广泛的浏览器:

Apple Safari

Microsoft Internet Explorer

Mozilla Firefox

Opera


用户代理


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 插件应用程序编程接口 (NPAPI)。


8. 我的 JavaScript 未正确执行

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

JavaScript 控制台:点击网页菜单图标,然后依次选择开发人员 > JavaScript 控制台。您可在此处查看执行 JavaScript 时发生的错误,并输入其他要执行的 JavaScript 命令。

JavaScript 调试程序:要使用此程序,请依次点击网页菜单图标 > 开发人员 > 调试 JavaScript,您可以通过调试程序所提供的命令提示符,设置断点、向后追踪与其他功能。在调试程序命令行中键入
help
,即可开始使用。


呈现情况与浏览器行为


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

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

如果您的网站在任何浏览器中都无法正确呈现,请在 http://validator.w3.org/ 中测试您的 HTML 与 CSS,以确认它们是否有效。

如果您的网站在谷歌浏览器或 Apple Safari 中无法正确呈现,请按照 http://webkit.org/quality/reporting.html 中的说明,向 webkit.org 报告错误。

如果您的网站可以在 Apple Safari 中正确呈现,但在谷歌浏览器却不行,请在 http://code.google.com/p/chromium/issues/list 中报告谷歌浏览器的错误。


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

以下几种工具可帮助您在谷歌浏览器中测试您的网站:

网络检查器

右键点击网页上任何组件,启动网络检查器。您会看到与所点击组件相关的元素及资源,包括 DOM 层次结构视图与 JavaScript 控制台。

任务管理器

选择网页菜单图标,然后依次选择开发人员 > 任务管理器(或按 Shift+Esc)。任务管理器会显示所有正在运行的谷歌浏览器进程及其所占用的资源(内存、CPU 和网络)。

JavaScript 调试程序

选择网页菜单图标,然后依次选择开发人员 > 调试 Javascript。这会启动可附加到现有进程的 JavaScript 调试程序。


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

请确保外部样式表采用的是正确的字符集和 content-type。它们应该是:
text/css
text/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"/>
说明(在可提供更多空间的位置上使用,例如在偏好设置面板中)description
<meta name="description" content="Google's approach to email"/>
点击快捷方式时打开的网址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 访问它们。

但是,如果您将新标签页导航至其他网站,则谷歌浏览器会查找在单独的进程中打开这些新标签页的提示。

最简单的方法是使用指向其他网站(定位了新窗口)的链接,而无需传递来源信息。谷歌浏览器会将此视为隔离新网页和初始网页的提示,并会在单独的进程中载入新网页。例如:
<a href="http://differentsite.com" target="_blank" rel="noreferrer">在新标签页和新进程中打开</a>


如果您希望在新进程中打开新标签页,同时仍然传递来源信息,请在 JavaScript 中按以下步骤操作:

about:blank 为目标地址打开新标签页。

将新打开的标签页的
opener
变量设置为
null
,这样该标签页就无法访问初始网页了。

about:blank 重定向至其他网站,而不是初始网页。

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


只有当相关网址与生成弹出式窗口的网页使用了不同的域和协议时,这些提示才有效。举例而言,如果生成弹出式窗口的网页的网址为http://www.example.com/

不同的域可以是 http://www.example.org,也可以是 http://www.example2.com

不同的协议可以是 https://www.example.com


搜索


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,那么以后只要在地址栏中输入 project,谷歌浏览器就会将 http://project 作为目标

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


18. 如何将我的网站添加到谷歌浏览器的搜索选项中?

您可以提供 OpenSearch 说明文档 (OSDD),让谷歌浏览器在浏览器的搜索引擎列表中加入您的网站。有关 OpenSearch 的详情,请访问http://www.opensearch.org
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: