簡體   English   中英

在新窗口中打開iframe內的鏈接

[英]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, 也許您可以創建一些工作,但即便如此我也不確定。 而且我不知道這是否會成為一個安全漏洞,也許其他人可以對此說話。 它可能看起來像:

  1. 主頁面設置會話ID,並通過get變量將其傳遞給iframe網址
  2. iframe獲取點擊信息,並通過對服務器上腳本的ajaxing調用將其發送到Session變量。
  3. 然后主頁面讀取(如何?)會話cookie並根據它的值進行更改。

總而言之,您可能會發現使用不同的方法實現您想要的功能可能更簡單,更安全。

部分解決方案

您可以在IFRAME的頂部添加絕對定位的DIV標記,並獲取對此的點擊。 請參見此處以20%alpha紅色着色的示例。

http://www.jsfiddle.net/rkd59/6/

但是,這意味着地圖以“只讀模式”工作,雖然您可以捕獲點擊事件,但您不知道用戶點擊了哪個鏈接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM