[英]Make links inside an iframe open in a new window
我正在嘗試在iframe中顯示一個地圖,其中有一個針在鼠標懸停上顯示某個公司的某些信息,事情就是一旦你點擊鏈接頁面在iframe里面打開就會破壞體驗,所以我想知道是否有可能使iframe中的鏈接在新窗口中打開,而不是使用jquery或類似的東西?
我的代碼是atm
http://www.jsfiddle.net/rkd59/1/
編輯:至少捕獲iframe中的點擊,以便我可以調整iframe的大小
您需要某種開放的API來正確執行此操作, Eniro不會根據此頁面提供一個(瑞典語)。
我建議您改用Google Maps API v3 。 我在jsFiddle上做了一個類似於Eniro的例子 。
我很樂意為你提供更多幫助,所以請你離開!
要在新窗口中彈出鏈接,通常會使用target="_blank"
:
<a href="http://www.yahoo.com" target="_blank">Go to Yahoo</a>
但是,只有在您可以修改在iFrame中顯示的代碼時,這才有效
請嘗試以下方法:
<script>
x=document.querySelectorAll("a");
for(i=0;i<x.length;i++)
{
x[i].setAttribute("target","_blank");
}
</script>
因此,所有鏈接都在新框架中打開。
由於此映射是在iFrame中加載的,因此無法在鏈接上運行任何javascript事件偵聽器,也無法更改html。
你不能(或者它是非常難)使iframe中的事件影響的父頁面。 這是為了防止來自XSS或跨站點腳本的攻擊。 話雖如此,如果iframe中的網站位於您自己的域中並且您想要設置一些非常棘手的ajaxing和php會話ID, 也許您可以創建一些工作,但即便如此我也不確定。 而且我不知道這是否會成為一個安全漏洞,也許其他人可以對此說話。 它可能看起來像:
總而言之,您可能會發現使用不同的方法實現您想要的功能可能更簡單,更安全。
有部分解決方案 。
您可以在IFRAME的頂部添加絕對定位的DIV標記,並獲取對此的點擊。 請參見此處以20%alpha紅色着色的示例。
http://www.jsfiddle.net/rkd59/6/
但是,這意味着地圖以“只讀模式”工作,雖然您可以捕獲點擊事件,但您不知道用戶點擊了哪個鏈接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.