tôi là tạo ra một iframe lập trình bằng cách sử dụng "dữ liệu" URI:lập trình truy cập vào một iframe có sử dụng một dữ liệu URI như một nguồn
<iframe id="myFrame" src='data:text/html;charset=utf-8,<!DOCTYPE html><html><head></head><body><h1>Hello.</h1></body></html>'></iframe>
khung này tải tốt, nhưng có vẻ như làm việc với các iframe lập trình truy cập kiểm tra bảo mật tên miền chéo.
var iframeDoc = document.getElementById('myFrame').contentWindow.document;
$(iframeDoc.body).find('h1').text('Changed');
Ném một lỗi trong Chrome và 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.
Dưới đây là một fiddle hiển thị các lỗi an ninh: http://jsfiddle.net/bhGcw/4/
Firefox và Opera không ném ngoại lệ này và cho phép các nội dung iframe được đã thay đổi. Có vẻ như Webkit thấy giao thức trống cho URI dữ liệu và coi đây là vi phạm tên miền chéo.
Có cách nào xung quanh vấn đề này không?
phải không? http://code.google.com/p/chromium/issues/detail?id=82402 nó dành cho crom chứ không phải chrome, nhưng có thể nó có cùng vấn đề. tôi cũng tìm thấy một số vấn đề bảo mật cho lừa đảo, mà chrome cố gắng ngăn chặn, nó có thể là nó quá – llamerr
Vâng, chắc chắn có vẻ liên quan. Đã hy vọng rằng có một cách giải quyết, nhưng dường như không có. –