我正在使用iframe嵌入来自其他网站的内容。 iframe中的按钮会打开带有表单的叠加层。问题是单击按钮时,叠加层无法完全打开。问题不是来自叠加层,而是来自iframe和父级。
我正在测试的网站是www.sycotickets.com/form.php。你可以检查它,然后点击底部的按钮来查看问题。我也学过javascript可以用来嵌入。任何人都可以在两个问题上向我提出正确的方向吗?
答案 0 :(得分:0)
你真的无能为力。如果从外部站点加载,浏览器会阻止您作为开发人员访问其他站点并修改它们以尝试阻止XSS攻击。您可以尝试通过动态移动iframe来伪装它,并在点击结束时覆盖黑色......但这看起来非常糟糕......
答案 1 :(得分:0)
使用AJAX从其他服务器加载页面内容时,有两种可能的答案
1)两个服务器都在类似的域中(s1.example.com
,s2.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自动为您实现此功能(至少是客户端位。)