我正在使用 iframe 嵌入其他网站的内容。 iframe 中的按钮打开带有表单的覆盖层。问题是当单击按钮时,覆盖层无法完全打开。问题不是来自覆盖层,而是来自 iframe 和父级。
我正在测试的网站位于 www.sycotickets.com/form.php。您可以检查它并单击底部的按钮来查看问题。我还了解到可以使用javascript来嵌入。谁能在这两个问题上为我指出正确的方向吗?
最佳答案
使用 AJAX 从不同服务器加载页面内容时有 2 个可能的答案
1) 两台服务器都位于相似的域中(s1.example.com
、s2.example.com
),在这种情况下,您可以将域简单地设置为是 example.com
,它允许 AJAX 调用的完整功能。
2) 服务器位于完全不同的域 - 提供内容的服务器(当前用于 IFrame)必须使用 JSONP
协议(protocol)提供数据(注意 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 自动为您实现此功能(至少在客户端)。
关于javascript - iframe问题和覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4856158/