HTMLIFrameElement.executeScript()

Non-standard
This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

The executeScript() method of the HTMLIFrameElement interface allows a specified script to be executed against a page loaded in the browser <iframe>.

Note: Use of the Browser API requires a privileged app, and browser and/or embed-apps permissions, depending on what you want to do. See Using the Browser API for more details.

Syntax

var myDOMRequest = instanceOfHTMLIframeElement.executeScript(script, options);

Return value

A DOMRequest object that returns an onsuccess handler if the script is successfully executed against the loaded content, or an onerror handler if not.

Parameters

script
The script to be executed.
options Optional
Optionally, you can provide an origin or URL for the script to be executed against. It's recommended that you include an origin or URL, in order to ensure that the script is being executed in the expected context:
  • origin: an origin, e.g. http://example.com
  • url: a URL, e.g. http://example.com/index.html

Note: The options parameter does not currently seem to have much effect. The script seems to execute even if a URL/origin is specified.

Examples

var request1 = browser.executeScript(
  var a = 3;
  a + 3
, {url: 'http://example.com/index.html'});

request1.onsuccess = function() {
  console.log(request1.result); // 6
}

var request2 = browser.executeScript(
  new Promise((resolve, reject) => {
    setTimeout(function() {
      resolve(6);
    }, 1000})
  )
, {origin: 'http://example.com'});

request2.onsuccess = function() {
  console.log(request2.result); // 6
}

If the script value is a not a Promise, it is simply returned as the request value. If the script value is a Promise, the result of the request will be the Promise-resolved value.

Specifications

Not part of any specification.

Browser compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung Internet
Basic support
Non-standard
Chrome No support NoEdge No support NoFirefox Full support 47
Notes
Full support 47
Notes
Notes Supported in chrome code only.
IE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoEdge Mobile No support NoFirefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android ?

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
Non-standard. Expect poor cross-browser support.
Non-standard. Expect poor cross-browser support.
See implementation notes.
See implementation notes.

See also

Document Tags and Contributors

Contributors to this page: teoli, fscholz, chrisdavidmills, Sebastianz, wbamberg
Last updated by: teoli,