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

Reply via email to