我尝试动态生成 iframe 的 src 属性:
var iframe = document.createElement('iframe');
var html = '<html> <head></head> <body></body> </html>';
var eventListener = '<script>window.addEventListener("message", someListenerFunction)</script>';
iframe.src = 'data:text/html;charset=utf-8,' + encodeURI(html) + encodeURI(eventListener);
iframe.sandbox = 'allow-scripts';
这实际上在chrome / firefox / safari中工作正常,但与ie11不起作用。在iframe窗口中,它返回:
无法显示网页
在控制台中我收到错误:
SCRIPT5:访问被拒绝。 文件:unknowprotocol.htm,行:1,列:1
我认为编码的URI 地址中的问题。
我这样做的原因 - 我需要生成大量的iframe,而且我不想为每个iframe创建静态网页。
希望得到你的帮助。提前谢谢。
答案 0 :(得分:-1)
嗨,即使我也面临类似的问题。我正在动态生成iFrame并设置src属性。
newIFrame.setAttribute("src", encodeURI(srcUrl));
这在IE 11中不起作用。