从安全页面打开“非安全”空白窗口

时间:2011-06-25 19:30:56

标签: javascript jquery

我正在使用以下代码从“安全”页面打开一个空白窗口:

$('#previewTemplate').click(function () {
            var preview = window.open('', 'PreviewTemplate', 'width=800,height=400,scrollbars=1');
            var html = '<html><head><title>Preview</title></head><body>' + $("#textbox").val() + '</body></html>';
            preview.document.open("text/html", "replace"); preview.document.write(html); preview.document.close(); return false;
        });

空白窗口作为安全页面打开(preview.document.location.protocol =“https:”),因此IE正在混淆混合内容,因为我在页面中有一个非安全图像。我正在尝试将空白窗口打开为非安全窗口。尝试将location.protocol更改为“http:”或将location.port更改为80似乎不起作用。是否可以在安全页面中打开一个空白的“非安全”窗口?

1 个答案:

答案 0 :(得分:1)

如果主窗口是https且子窗口是http,则相同的源策略将阻止两者相互通信。即对p​​review.document.open的调用永远不会有效。

三个选项:

  • 托管来自相同https的图片 域作为父窗口。
  • 而不是动态写入子窗口,只需托管一个页面 与图像相同的服务器。甚至 如果你只能把静态HTML放在那里 无论什么原因,一些基本的 javascript可以用来阅读 url的查询字符串并获取值 文本框。
  • 阅读window.postMessage。只有作品 但是在更现代的浏览器中。