MenuItem.contexts
From Opera 15 onward, Opera 11 & 12’s extension format is no longer supported, and instead, we’ve switched to Chromium’s extension model. Check out our new documentation for developing extensions for Opera 15 and higher and start building your own extensions.
Description:
The contexts
attribute is used to define the list of contexts that this context menu item will appear in. The list of valid context values for this attribute include all
, page
, frame
, selection
, link
, editable
, image
, video
and audio
. The default value is an array with a single entry of page
.
Syntax:
DOMString[] contexts
Example:
The following example creates an item in the context menu to open links in private tabs. In other words, the "Open link in private tab" item will appear only when a link is right-/Ctrl-clicked.
<!--
The configuration file ('config.xml').
-->
<?xml version='1.0' encoding='utf-8'?>
<widget xmlns="http://www.w3.org/ns/widgets">
...
<feature name="opera:contextmenus"/>
...
</widget>
//
// The background process (e.g. index.html)
//
if (opera.contexts.menu) {
var menu = opera.contexts.menu;
// Create a menu item properties object
var itemProps = {
title: 'Open link in private tab',
contexts: ['link'],
onclick: function(event) {
// Create a tab properties object
var tabProps = {
url: event.linkURL,
private: true
};
// Create a tab with the specified properties
var tab = opera.extension.tabs.create(tabProps);
}
}
// Create a menu item with the specified properties
var item = menu.createItem(itemProps);
// Add the menu item to the context menu
menu.addItem(item);
}
This article is licensed under a Creative Commons Attribution 3.0 Unported license.
Comments
Darko Pantić
Friday, August 24, 2012
Christoph
Wednesday, October 24, 2012
e.g. I'm writing an extension that injects some buttons into all web pages. They might cover something on certain websites though, so I need a way to hide them which would be perfect to achieve using the context menu. But therefore it does only make sense to show the entry on those injected elements and not the rest of the page.
Can we get this functionality (i.e. showing on elements with distinct IDs only)?
izydoringwari
Thursday, November 15, 2012
In my opinion the best solution would be by a css selector, so we could narrow the context menu down to a specific element or expand it to a wider group of elements.
xenomonkey
Monday, January 7, 2013