编码的URI不像IE11中的iframe的src属性那样工作

时间:2016-04-20 15:33:21

标签: javascript iframe sandbox

我尝试动态生成 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创建静态网页。

希望得到你的帮助。提前谢谢。

1 个答案:

答案 0 :(得分:-1)

嗨,即使我也面临类似的问题。我正在动态生成iFrame并设置src属性。

newIFrame.setAttribute("src", encodeURI(srcUrl));

这在IE 11中不起作用。