Tworzę iframe programowo przy użyciu „dane” URI:Programowy dostęp do iframe, który używa danych URI jako źródło
<iframe id="myFrame" src='data:text/html;charset=utf-8,<!DOCTYPE html><html><head></head><body><h1>Hello.</h1></body></html>'></iframe>
Ta ramka ładunki w porządku, ale wydaje się, że działa z iframe programowo uderza w sprawdzenia bezpieczeństwa w wielu domenach.
var iframeDoc = document.getElementById('myFrame').contentWindow.document;
$(iframeDoc.body).find('h1').text('Changed');
Zgłasza błąd w Chrome i Safari:
Unsafe JavaScript attempt to access frame with URL data:text/html;charset=utf-8,... from frame with URL http://... The frame requesting access has a protocol of 'http', the frame being accessed has a protocol of ''. Protocols must match.
Oto skrzypce pokazując błąd zabezpieczeń: http://jsfiddle.net/bhGcw/4/
Firefox i Opera nie rzucać ten wyjątek i pozwolić zawartość iframe być zmienione. Wygląda na to, że Webkit widzi pusty protokół dla identyfikatorów URI danych i widzi to jako naruszenie między domenami.
Czy jest jakiś sposób obejścia tego?
czy tak? http://code.google.com/p/chromium/issues/detail?id=82402 dotyczy chromu, a nie chrome, ale może ma ten sam problem. również znalazłem problem z bezpieczeństwem dla phishingu, którego chrome próbuje zapobiegać, może to być też zbyt. – llamerr
Tak, to zdecydowanie wygląda na powiązane. Miał nadzieję, że istnieje obejście, ale wydaje się, że tak nie jest. –