[whatwg] clarification for data-uris in window.open and SOP

Andreas Göbel andreas.goebel at typeofnan.com
Tue Feb 8 13:38:52 PST 2011


Recently I needed to have some base64 encoded images to show in a new window. My first attempt was, to just pass the data:image/png;base64,<data> string as first argument from window.open().

This works in all browsers that support data-uris, but it is terribly slowing down the browser when passing in images with a "big" filesize. My idea was to do something like this:

var largeprev = window.open('data:text/html;charset=utf-8,' + escape('<div/>'), 'large'),
    that      = this;

    largeprev.addEventListener('DOMContentLoaded', function(e) {
        largeprev.alert('loaded');
        largeprev.document.querySelectorAll('div')[0].appendChild(that);
    }, false);
this works great in Firefox (3.6.x), but Chrome and Safari treat the returned DOMWindow object like it represents a foreign domain. Technically, it is not the same domain obviously since I'm passing in a data:text/html data-uri, but I would be shocked if the Same Origin Policy would deny an attempt like this ?

What should be the correct behavior for this ?

--Andy



More information about the whatwg mailing list