iframe问题和叠加

时间:2011-01-31 21:11:50

标签: javascript iframe overlay

我正在使用iframe嵌入来自其他网站的内容。 iframe中的按钮会打开带有表单的叠加层。问题是单击按钮时,叠加层无法完全打开。问题不是来自叠加层,而是来自iframe和父级。

我正在测试的网站是www.sycotickets.com/form.php。你可以检查它,然后点击底部的按钮来查看问题。我也学过javascript可以用来嵌入。任何人都可以在两个问题上向我提出正确的方向吗?

2 个答案:

答案 0 :(得分:0)

你真的无能为力。如果从外部站点加载,浏览器会阻止您作为开发人员访问其他站点并修改它们以尝试阻止XSS攻击。您可以尝试通过动态移动iframe来伪装它,并在点击结束时覆盖黑色......但这看起来非常糟糕......

答案 1 :(得分:0)

使用AJAX从其他服务器加载页面内容时,有两种可能的答案

1)两个服务器都在类似的域中(s1.example.coms2.example.com)在这种情况下,您可以将域设置为example.com,它允许使用AJAX调用的完整功能。

2)服务器位于完全不同的域 - 提供内容的服务器(当前用于IFrame)必须使用JSONP协议提供数据(注意P!)这意味着结果数据被加载到然后执行的脚本标记。数据本身包含一个JS函数调用,例如:

{data: '<pre>Some Html</pre>'}

实际上返回为:

function SomeFuncNameSpecifiedInTheRequest({data: '<pre>Some Html</pre>'});

您可以动态地向页面添加脚本标记,而不是进行AJAX调用,例如:

<script type="text/javascript" src="http:/www.example.com/GetMyData.php?WrapperFunction=SomeFuncNameSpecifiedInTheRequest">

然后在页面上实施SomeFuncNameSpecifiedInTheRequest并在调用结果时处理结果。 JQuery自动为您实现此功能(至少是客户端位。)

有关JSONP和here的详细信息,请参阅here,了解有关设置域的更多信息