This documentation relates to Opera's now deprecated .oex Extension API framework for Opera versions <= 12.15 and also provided by our OEX2NEX shim library.
For the latest Opera Extensions API documentation for Opera versions > 12.15 please consult the latest Opera Extensions API documentation online.
Adds a rule, with accompanying options, to the virtual list of allowed URLs (whitelist).
Note that allowed rules have priority over blocked rules by default.
rule
: The rule (e.g. domain) to allow.options
: Options to specify conditions for the given rule.void add (DOMString rule, RuleOptions options)
The following example blocks any content from facebook.com, but only when accessed from the cnn.com domain, e.g. a "Like" or "Recommend" button.
<!--
The configuration file ('config.xml').
-->
<?xml version='1.0' encoding='utf-8'?>
<widget xmlns="http://www.w3.org/ns/widgets">
...
<feature name="opera:urlfilter"/>
</widget>
//
// The background process (e.g. index.html)
//
// Check that the URL Filter API exists
if (typeof opera.extension.urlfilter != 'undefined') {
// Set the options for the filter rule
var ruleOptions = {
excludeDomains: ['cnn.com']
}
// Assign the URLFilter object to a variable for efficiency
var filter = opera.extension.urlfilter;
filter.allow.add('||facebook.com/*', ruleOptions);
filter.block.add('||facebook.com/*');
}
This second example shows how we can convert whitelisting in Adblock Plus syntax to the Opera URL Filter syntax. The whitelisting rule will allow scripts from the ||ads.cnn.com/js.ng/*&cnn_intl_subsection=download
URL and is taken from this list: https://easylist-downloads.adblockplus.org/easylist.txt
<!--
The configuration file ('config.xml').
-->
<?xml version='1.0' encoding='utf-8'?>
<widget xmlns="http://www.w3.org/ns/widgets">
...
<feature name="opera:urlfilter"/>
</widget>
//
// The background process (e.g. index.html)
//
// Check that the URL Filter API exists
if (typeof opera.extension.urlfilter != 'undefined') {
// Assign the URLFilter object to a variable for efficiency
var filter = opera.extension.urlfilter;
filter.block.add('||ads.*');
// The following is the same as this Adblock syntax for whitelisting:
// @@||ads.cnn.com/js.ng/*&cnn_intl_subsection=download$script
filter.allow.add("||ads.cnn.com/js.ng/*&cnn_intl_subsection=download", {resources: filter.RESOURCE_SCRIPT});
}
Note the use of ||
which is a hostname mark. This indicates that the subsequent characters should begin matching from any host name in the URL. For example, ||example.com*
matches http://example.com/
, https://www.example.com/
, or similar. However, it will not match http://badexample.com/
.