« Documentation Home

opera.extension.urlfilter.allow.add()

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.

Description:

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.

Parameters:

Syntax:

void add (DOMString rule, RuleOptions options)

Examples:

Example 1

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/*');
}

Example 2

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/.