You are viewing extension docs in chrome via the 'file:' scheme: are you expecting to see local changes when you refresh? You'll need run chrome with --allow-file-access-from-files.
WARNING: This is the BETA documentation. It may not work with the stable release of Chrome.
WARNING: This is unofficial documentation. It may not work with the current release of Chrome.

Google Chrome Extensions (Labs)

Page Actions

Page Actions

Use page actions to put icons inside the address bar. Page actions represent actions that can be taken on the current page, but that aren't applicable to all pages. Some examples:

  • Subscribe to this page's RSS feed
  • Make a slideshow out of this page's photos

The RSS icon in the following screenshot represents a page action that lets you subscribe to the RSS feed for the current page.

If you want the extension's icon to always be visible, use a browser action instead.

Note: Packaged apps cannot use page actions.

Manifest

Register your page action in the extension manifest like this:

{
  "name": "My extension",
  ...
  "page_action": {
    "default_icon": "icons/foo.png", // optional
    "default_title": "Do action",    // optional; shown in tooltip
    "default_popup": "popup.html"    // optional
  },
  ...
}

Parts of the UI

Like browser actions, page actions can have an icon, a tooltip, and popup; they can't have badges, however. In addition, page actions can appear and disappear. You can find information about icons, tooltips, and popups by reading about the browser action UI.

You make a page action appear and disappear using the show() and hide() methods, respectively. By default, a page action is hidden. When you show it, you specify the tab in which the icon should appear. The icon remains visible until the tab is closed or starts displaying a different URL (because the user clicks a link, for example).

Tips

For the best visual impact, follow these guidelines:

  • Do use page actions for features that make sense for only a few pages.
  • Don't use page actions for features that make sense for most pages. Use browser actions instead.
  • Don't constantly animate your icon. That's just annoying.

Examples

You can find simple examples of using page actions in the examples/api/pageAction directory. For other examples and for help in viewing the source code, see Samples.

API reference: chrome.pageAction

Methods

getPopup

chrome.pageAction.getPopup(object details, function callback)

Gets the html document set as the popup for this browser action.

Parameters

details
( object )
Undocumented.
tabId
( integer )
Specify the tab to get the popup from.
callback
( function )
Undocumented.

Callback function

The callback parameter should specify a function that looks like this:

function(string result) {...};
result
( string )
Undocumented.

getTitle

chrome.pageAction.getTitle(object details, function callback)

Gets the title of the browser action.

Parameters

details
( object )
Undocumented.
tabId
( integer )
Specify the tab to get the title from.
callback
( function )
Undocumented.

Callback function

The callback parameter should specify a function that looks like this:

function(string result) {...};
result
( string )
Undocumented.

hide

chrome.pageAction.hide(integer tabId)

Hides the page action.

Parameters

tabId
( integer )
The id of the tab for which you want to modify the page action.

setIcon

chrome.pageAction.setIcon(object details)

Sets the icon for the page action. The icon can be specified either as the path to an image file or as the pixel data from a canvas element. Either the path or the imageData property must be specified.

Parameters

details
( object )
Undocumented.
tabId
( integer )
The id of the tab for which you want to modify the page action.
imageData
( optional ImageData )
Pixel data for an image. Must be an ImageData object (for example, from a canvas element).
path
( optional string )
Relative path to an image in the extension to show in the browser action.
iconIndex
( optional integer )
Deprecated. The zero-based index into the icons vector specified in the manifest.

setPopup

chrome.pageAction.setPopup(object details)

Sets the html document to be opened as a popup when the user clicks on the page action's icon.

Parameters

details
( object )
Undocumented.
tabId
( integer )
The id of the tab for which you want to modify the page action.
popup
( string )
The html file to show in a popup. If set to the empty string (''), no popup is shown.

setTitle

chrome.pageAction.setTitle(object details)

Sets the title of the page action. This is displayed in a tooltip over the page action.

Parameters

details
( object )
Undocumented.
tabId
( integer )
The id of the tab for which you want to modify the page action.
title
( string )
The tooltip string.

show

chrome.pageAction.show(integer tabId)

Shows the page action. The page action is shown whenever the tab is selected.

Parameters

tabId
( integer )
The id of the tab for which you want to modify the page action.

Events

onClicked

chrome.pageAction.onClicked.addListener(function(Tab tab) {...});

Fired when a page action icon is clicked. This event will not fire if the page action has a popup.

Listener parameters

tab
( Tab )
Undocumented.