Programowy dostęp do ramki iframe, która używa identyfikatora URI danych jako źródła

Tworzę ramkę iframe programowo przy użyciu identyfikatora URI „data”:

<iframe id="myFrame" src='data:text/html;charset=utf-8,<!DOCTYPE html><html><head></head><body><h1>Hello.</h1></body></html>'></iframe>​

Ta ramka ładuje się dobrze, ale wydaje się, że praca z ramką iframe programowo trafia do kontroli bezpieczeństwa między domenami.

var iframeDoc = document.getElementById('myFrame').contentWindow.document;
$(iframeDoc.body).find('h1').text('Changed');

Zgłasza błąd w Chrome i Safari:

Niebezpieczna próba uzyskania dostępu do ramki z danymi URL: tekst / html; charset = utf-8, ... z ramki z adresem URL http: // ... Ramka żądająca dostępu ma protokół „http”, do którego uzyskiwany jest dostęp do ramki ma protokół „”. Protokoły muszą się zgadzać.

Oto skrzypce pokazujące błąd bezpieczeństwa:http://jsfiddle.net/bhGcw/4/

Firefox i Opera nie wyrzucają tego wyjątku i umożliwiają zmianę zawartości iframe. Wygląda na to, że Webkit widzi pusty protokół dla URI danych i widzi to jako naruszenie między domenami.

Czy jest jakiś sposób na to?

questionAnswers(3)

yourAnswerToTheQuestion