4

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

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

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

4

2 回答 2

2

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

于 2009-06-01T17:11:12.270 回答
1

我认为您遇到的问题是浏览器阻止了跨域通信的发生。有一种方法可以为您的 javascript 签名,但它几乎破坏了浏览器安全模型,除非绝对必要,否则不建议这样做。

登录表单是否基于 URL 提交?您可以创建一个简单的登录表单并使用 AJAX 来获取您的响应以确保成功登录。此解决方案取决于拥有 RESTful 登录,我不确定您的 second.com 的实施情况。

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

于 2008-11-14T22:48:43.837 回答