我正在尝试在iframe中显示一个地图,其中有一个针在鼠标悬停上显示某个公司的某些信息,一旦你点击了iframe内部打开的链接就会破坏体验,所以我想知道是否可以在一个新窗口中打开iframe中的链接,而不是使用jquery或类似的东西?
我的代码是atm
http://www.jsfiddle.net/rkd59/1/
编辑:至少捕获iframe中的点击,以便我可以调整iframe的大小
答案 0 :(得分:7)
您需要某种开放式API来正确执行此操作,而Eniro根据this page(瑞典语)提供的不会提供。
我建议你改用Google Maps API v3。我做了一个类似于Eniro的 example on jsFiddle 。
我很乐意为你提供更多帮助,所以请你离开!
答案 1 :(得分:2)
要在新窗口中弹出链接,通常会使用target="_blank"
:
<a href="http://www.yahoo.com" target="_blank">Go to Yahoo</a>
但是,只有在您可以修改在iFrame中显示的代码
时,这才有效答案 2 :(得分:1)
由于此地图是在iFrame中加载的,因此无法在链接上运行任何javascript事件侦听器,也无法更改html。
答案 3 :(得分:1)
你不能(或者非常很难)使iframe内的事件影响到父页面。这是为了防止来自XSS或cross site scripting的攻击。话虽如此,如果iframe中的网站位于您自己的域上,并且您想要设置一些非常棘手的ajaxing和php会话ID,也许您可以使某些工作成功,但即便如此,我也不确定。而且我不知道这是否会成为一个安全漏洞,也许其他人可以对此说话。它可能看起来像:
总而言之,您可能会发现使用其他方法实现您想要的内容可能会更简单,更安全。
答案 4 :(得分:1)
请尝试以下方法:
<script>
x=document.querySelectorAll("a");
for(i=0;i<x.length;i++)
{
x[i].setAttribute("target","_blank");
}
</script>
因此所有链接都在新框架中打开。
答案 5 :(得分:0)
有一个部分解决方案。
您可以在IFRAME的顶部添加一个绝对定位的DIV标记,并获取对此的点击。请参见此处以20%alpha红色着色的示例。
<强> http://www.jsfiddle.net/rkd59/6/ 强>
但是,这意味着地图以“只读模式”工作,虽然您可以捕获点击事件,但您不知道用户点击了哪个链接。