打开并写入新窗口,但强制它是跨域

时间:2018-05-20 20:28:27

标签: javascript cross-domain window.open cross-domain-policy

我需要打开一个新窗口并编写一些用户提供的html,其中包含可能的css和javascript。

我不希望他们访问任何Cookie或让他们访问主网页上的任何其他内容。

目前有:

var text = userSuppliedText;
var newWindow = window.open("");
newWindow.newWindow.document.write(text);
newWindow.close();

这使新窗口的域与父页面相同。有没有办法避免这种情况?

谢谢!

1 个答案:

答案 0 :(得分:1)

没有办法在与创建它的页面不同的域中动态创建新窗口(出于安全目的,这是一件好事)。

由于您希望在不同的域中打开页面,最好的办法是在另一个域中创建一个页面并设置一个向其发送数据的AJAX请求,但当然,需要为其配置CORS跨域访问。

另外(FYI),newWindow.write(text);会失败。它必须是:newWindow.document.write(text);