我有两个Web应用程序设置:
大卫 .example.com和约翰 .example.com
大卫为约翰打开了一个新窗口:
window.open('john.example.com');
John现在想在David上重新设置输入元素:
$("#input", window.opener.document).val("Hello David.");
我的问题是,由于跨域脚本安全性,这在大多数现代浏览器上均不起作用。我也曾尝试在David和John上将
document.domain
设置为不同的域组合,但均未成功。只有约翰在
example.com
上并且都将document.domain
设置为example.com
时,这才起作用。但是,example.com
是我们的主要网站,不能作为解决方案。那么,有什么办法可以使上述解决方案在所有现代的注重安全性的浏览器中运行,同时可以执行上述示例?
笔记
example.com
及其所有子域。 最佳答案
只要您在两个DOM上都设置了document.domain,就应该能够做到这一点。
document.domain = location.host.replace(/^.*?([^.]+\.[^.]+)$/g,'$1');
归功于马丁·耶斯珀森(Martin Jespersen)