Javascript 开放式;“不安全”;安全页面中的空白窗口

Javascript 开放式;“不安全”;安全页面中的空白窗口,javascript,jquery,Javascript,Jquery,我正在使用以下代码从“安全”页面打开一个空白窗口: $('previewTemplate')。单击(函数(){ var preview=window.open(“”,'PreviewTemplate','width=800,height=400,scrollbars=1'); var html='Preview'+$(“#textbox”).val(); preview.document.open(“text/html”,“replace”);preview.document.write(htm

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

$('previewTemplate')。单击(函数(){
var preview=window.open(“”,'PreviewTemplate','width=800,height=400,scrollbars=1');
var html='Preview'+$(“#textbox”).val();
preview.document.open(“text/html”,“replace”);preview.document.write(html);preview.document.close();返回false;
});

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

如果主窗口是https,子窗口是http,则同源策略将阻止两者相互通信。i、 e.对preview.document.open的调用永远不会起作用

三种选择:

  • 从相同的https托管映像 域作为父窗口
  • 与其动态地写入子窗口,不如在 与映像相同的服务器。即使 如果你只能把静态html放在那里 不管什么原因,一些基本的 javascript可用于读取 url的查询字符串并获取值 文本框的名称
  • 仔细阅读。只起作用 但在更现代的浏览器中

如果主窗口是https,子窗口是http,则同源策略将阻止两者相互通信。i、 e.对preview.document.open的调用永远不会起作用

三种选择:

  • 从相同的https托管映像 域作为父窗口
  • 与其动态地写入子窗口,不如在 与映像相同的服务器。即使 如果你只能把静态html放在那里 不管什么原因,一些基本的 javascript可用于读取 url的查询字符串并获取值 文本框的名称
  • 仔细阅读。只起作用 但在更现代的浏览器中

无法使用选项1,因为映像托管在不支持https的cdn中。我只是要主持预览页面,而不是使用document.write;这将允许我以http:.的形式打开子窗口。无法使用选项1,因为映像托管在不支持https的cdn中。我只是要主持预览页面,而不是使用document.write;这将允许我以http:的形式打开子窗口。
$('#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;
        });