The js part of Garðr which insert and talks with the iframes on the host page
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Garðr (host)

Build Status Dependency Status devDependency Status


Sauce Test Status

Garðr is a library for embedding content from external sources such as advertisements or similar third party content.

Removes the need for friendly iframes support in delivery systems and supports both HTML, Image and Flash based adverts. The iframe should be hosted on a different domain to enable security-features in the browser that prevents third party content to insert content or get user info from the parent page. postMessage is used for cross-domain communication.



Easiest way is through npm.

$ npm test

When working with the code you can use karma and grunt to get continuous feedback on your tests.

$ npm run watch


Debugging can be done by configuring logging to either the browser console or as an overlay inside the iframes rendered by Garðr.

You can turn on logging by adding an url-fragment with log level on the page you're using Garðr: #loglevel=4 By default it will display an overlay inside each banner with the log output. If the banner isn't visible, you can output to console by using: #loglevel=4&logto=console

NB! If the banner injects another iframe we have no good way of catching errors :(

Polyfills required for IE8+ support

  • ES5-shim You do not need a sham (unsafe polyfills).
  • postMessage is required, so it won't work in IE7 at the moment.

Releasing new versions

# Make sure you have installed npm-release
$ npm install -g npm-release

# Release (make sure you have have nothing uncommited)
$ npm-release [<newversion> | major | minor | patch | build]

Demos and samples

See samples here:

Samples in the wild

  • All of the display adverst on is using Garðr to safely embed responsive adverts written in HTML, CSS and JS.