具有返回值的跨域弹出窗口

时间:2009-09-18 08:03:53

标签: javascript html popup cross-domain

这是设置:

我在两个不同的域名上有两个网站:

  • www.website1.com
  • www.someotherwebsite.com

这就是我想要做的事情:

  1. 当用户点击www.website1.com并点击链接时,我想要一个弹出窗口显示www.someotherwebsite.com

  2. 当用户点击弹出窗口中的按钮(显示 www.someotherwebsite.com )时,我希望该窗口关闭并返回一个值。

  3. 我希望弹出窗口返回的值放在www.website1.com上的div中,或放入javascript调用,或者可以访问某些地方,例如填写表单字段。

  4. 我希望这是有道理的。我需要使用HTML和Javascript而无需外部库。它也必须适用于当前的主流浏览器(即不是HTML5的东西)。

    提前感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

好吧,如果你在弹出窗口中使用iframe [在这个时代,我会避免弹出窗口像瘟疫那样弹出阻挡器]

使用iframe,您可以cross domain calls

为什么不从A到B开发Web服务并从A调用它?看起来比在浏览器中找到小裂缝以避免安全性更加清晰。

答案 1 :(得分:2)

您可以将弹出窗口中的值从www.someotherwebsite.com发布回www.website1.com上的特殊页面。现在您回到原始域,该页面获取GET值并将其写入某些JavaScript。 JavaScript然后使用opener.document.getElementById在opener窗口的某处更新值,或者使用类似opener.document.doSomething(val)的函数调用opener中的函数;它处理响应。

它充满了潜在的错误(如果用户打开窗口的两个副本怎么办?或关闭原始网站?)和潜在的安全漏洞,如果你试图对那些不喜欢的窗户做事情,浏览器会有很大的反应存在或存在于不同的域中,但在已知的环境中它应该有效。