javascript - iframe问题和覆盖

标签 javascript iframe overlay

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

我正在测试的网站位于 www.sycotickets.com/form.php。您可以检查它并单击底部的按钮来查看问题。我还了解到可以使用javascript来嵌入。谁能在这两个问题上为我指出正确的方向吗?

最佳答案

使用 AJAX 从不同服务器加载页面内容时有 2 个可能的答案

1) 两台服务器都位于相似的域中(s1.example.coms2.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 自动为您实现此功能(至少在客户端)。

参见here有关 JSONP 的更多信息和 here有关设置域的更多信息

关于javascript - iframe问题和覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4856158/

相关文章:

javascript - 如何让音乐播放器在网站上连续播放

android - osmdroid bonuspack 显示信息窗口

javascript - 使用嵌套文件的 D3.js 分组条形图

javascript - jQuery - 获取某些标签之间的所有 html

Javascript:对象文字表示法中的indexOf

javascript - 使用 jQuery 在元素上显示气球消息

css - 转换为 html 的 Swf 横幅没有响应

iframe - 在 ionic 2 应用程序中使用 iframe 播放 YouTube 视频

android - 文本未显示在 MapView 叠加层上

android - 如何从屏幕截图中排除叠加层?