是否可以从内部或服务器端隐藏/关闭iframe?

时间:2008-11-14 22:32:57

标签: javascript iframe cross-domain

假设我有一个页面,我正在为域first.com编写一个javascript插件。 javascript插件将指向登录页面(域second.com)的iframe注入first.com页面并将其显示为弹出窗口,以便用户可以登录。

在用户使用iframe后,我是否仍然隐藏/关闭iframe?我可以将任何必要的javascript注入first.com页面,并在iframe中的登录页面上控制客户端和服务器端代码。

主要问题是iframe无法访问其父窗口以隐藏自身,并且由于相同的源策略,父窗口无法看到iframe内容中所做的任何更改。反正有这个或者我应该失去iframe的想法,而是打开一个新窗口?

2 个答案:

答案 0 :(得分:2)

如果可以说服second.com的开发者在其登录页面加载iframe,该页面在first.com上加载页面,则内部iframe可以在外部调用javascript,因为它们都来自first.com 。您也可以通过内部iframe的url以这种方式传递参数。这里有example

答案 1 :(得分:1)

我认为您遇到的问题是浏览器阻止跨域通信的发生。有一种方法sign your javascript但它几乎打破了浏览器安全模型,除非绝对必要,否则不建议使用。

登录表单是否基于URL子目录?您可以创建一个简单的登录表单并使用AJAX来获取您的响应以确保成功登录。此解决方案依赖于RESTful登录,而且我不确定您的second.com的实现。

如果您想知道如何使用ajax提交表单,我会检查this(它在jQuery中,但它适用于任何框架。)查看源代码并且看看这是否适合你的情况。