Skip to content
2010年10月4日 / island205

[译].Google Chrome extensions(实验室).浏览器交互.历史

chrome.history

chrome.history模块可以和浏览器记录的浏览历史交互。你可以历史中添加、删除、搜索URLS。用自己喜爱的页面来覆盖历史页,更多Override Pages

Manifest

你必须在配置文件extension manifest中取得“history”的授权才可以使用history API。示例如下:

   1:  {
   2:    "name": "My extension",
   3:    ...
   4:    "permissions": [
   5:      "history"
   6:    ],
   7:    ...
   8:  }

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

过度类型

history API使用一种过渡类型来描述浏览器如何在某个特定的访问中导航到特定的URL。比如说,某个用户通过点击某个网页的链接来访问其他网页,这种过度类型称为“link”。

下表对每个过渡类型的具体描述:

过渡类型

描述

“link” 用户点击页面链接所到达的页面
typed 地址栏输入URL导航到的页面。还用于其他一些明确的导航动作。查看generated,一种用于用户选择一种看起来不像URL的地方。
“auto_bookmark” 用户通过UI得到的页面——比如说,通过一个菜单项。
“auto_subframe” 子框架导航。这个属于非顶级框架的内容。比如一个包含有广告的一些框架的网页,这个URLs是这种过渡类型。用户甚至认识不到这类页面在子框架内,所以可能不关心这类URL(参见manual_subframe
manual_subframe 对于用户明确要求的子框架里的导航,将产生新的实体添加进后退/前进列表中。一个有用户明确请求的框架要比自动加载的框架重要,因为用户或许更加关心所请求的框架已经被加载。
generated 用户通过向地址栏中输入选择了某个不像URL的条目达到的页面。例如,某个Google搜索结果的页面所拥有的URL,但是它常以“在谷歌搜索……”,这个和typed类型的导航不太一样,因为用户并不输入或者看目的URL。参考keyword
“start_page” 在命令行的启动参数就设置的URL或者是开始页面。
“form_submit” 用户填写表单,并且提交了表单。注意某些特殊的情形——用脚本提交的内容的表单——这样提交的表单不会产生此类过渡类型。
“reload” 不管用户是点击刷新按钮还是在地址栏里回车,产生的刷新页面。恢复的会话或者重新打开的标签页也使用该种类型。
keyword 该URL产生于一个可替换的关键字,而不是由搜索提供的默认关键字。
参考keyword_generated
keyword_generated 为关键字生成的一个对应的访问。参考keyword

示例

API如何使用,参看history sample directoryhistory API test directory。其他示例或者源码阅读帮助,请参看Samples

API参考:chrome.history

方法

addUrl

   1:  chrome.history.addUrl(object details)

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

     在当前时间 以一过渡类型“link”添加一个URL到历史中。

     参数

     details(object)

     url(string)

          将要添加的URL

deleteAll

   1:  chrome.history.deleteAll(function callback)

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

     删除所有历史记录

     参数

     callback(function)

     Callback function

     需要的话,如下声明callback参数

   1:  function() {...});

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

 deleteRange

   1:  chrome.history.deleteRange(object range, function callback)

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

      删除指定的时间范围的历史记录。非指定时间范围的记录不会被删除。

      参数

      range(object)

             startTime(number)

                   在此时间后历史记录,从新纪元开始计数的毫秒数

             endTime(number)

                    在此时间前添加的历史记录,从新纪元开始计数的毫秒数

       callback(function)

       Callback function   

       需要的话,如下声明回调函数

   1:  function() {...});

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

deleteUrl

   1:  chrome.history.deleteUrl(object details)

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

     删除所有与给定URL匹配的历史记录

     参数

     details(string)

          url(string)

              要删除的URL

getVisits

   1:  chrome.history.getVisits(object details, function callback)

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

      检索某个URL的信息

      参数

      details(object)

           url(string)

               指定检索信息的URL,它必须是调用history .search返回的一个某种格式。

      callback(function)

      Callback function

      如若需要,如下定义回调函数

   1:  function(array of VisitItem results) {...});

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

      results(array of VisitItem)

search

   1:  chrome.history.search(object query, function callback)

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

      检索每个匹配查询页面的最后一次访问。

      参数

      query(object)

            text(string)

                  随便一个查询文本,为空时查看所有的历史页面

            startTIme(可选 number)

                  从该时间开始检索浏览历史,从新纪元开始计数的毫秒数

           endTime(可选 number)

                  检索该时间以前的浏览历史,从新纪元开始计数的毫秒数

             maxResults(可选 integer)

                  检索的结果的最大数,默认为100

      callback(function)

      Callback function

       如若需要,如下定义回调函数

   1:  function(array of HistoryItem results) {...});

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

       results(array of HistoryItem)

事件

onVisitRemoved

   1:  chrome.history.onVisitRemoved.addListener(function(object removed) {...});

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

      当一个或者多个URLs从历史记录中被移除时触发。当某个URL的所有浏览都被删除时,该URL从历史中被清除

      参数

      removed(object)

            allHistory(boolean)

                  当所有历史记录被清除时为true,如果为true则urls将被清空

            urls(可选 array of string)

onVisited

   1:  chrome.history.onVisited.addListener(function(HistoryItem result) {...});

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

      当某个URL被访问是触发,把HistoryItem数据提供给URL。

      参数

      result(HistoryItem)

类型

VisitItem

(object)

        一个分装了对一个URL的一次访问。

         id(string)

                每个条目的标识符

         visitedId(string)

               该次访问的唯一标识符

          visitTime(可选 number)

               发生访问的时间,从新纪元开始计数的毫秒数

          referringVisited(string)

                指向visit_id的指针

          transition(string)

                该浏览指向的过渡类型transition_type

HistoryItem

(object)

         一个封装一次历史查询结果的对象

         id(string)

              每个条目的唯一标识

        url(可选 string)

              用户导航到的URL

        title(可选 string)

              历史页面的标题

         lastVisitTime(可选 number)

              何时该页面最后一次被加载,从新纪元开始计数的毫秒数

        visitCount(可选 integer)

               用户浏览该页面的次数

         typedCount(可选 integer)

               用户以在地址栏输入地址导航到该页面的次数

Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: