2012-09-19 35 views
1

我讀了很多東西,我不確定這是否可以完成,每個人都有不同的方法。使用外部網站和JQuery事件的iframe

我有一個網站與第三個合作伙伴網站鏈接,甚至更多通過安全手柄,第三個合作伙伴網站不允許用戶如果沒有登錄我的網站。這個評論的提示是沒有辦法改變第三方合作伙伴的任何一行代碼。

在另一方面,我在我的網站已經一個HTML兩兩件事:

  1. 與第三個合作伙伴網站的。
  2. A <div>position:absolute,作爲指導工作在iframe上,就像「現在點擊這裏,現在去那裏」。

到目前爲止好,我也調整iframe的高度與在我身邊下列jQuery腳本廠商文檔:

<script type="text/javascript"> 
function adjustmyiframe() { 
var theFrame = $('#iFrameToAdjust', parent.document.body); 
theFrame.height($(document.body).height() + 100); 
} 
</script> 

,我的iframe是:

<iframe 
id="iFrameToAdjust" 
onload="adjustmyiframe();" 
width="100%" 
height="100%" name="myiframe" frameborder="1" vspace="0" hspace="0" 
marginwidth="0" marginheight="0" scrolling="no" noresize 

src="http://externalsite"></iframe> 

而且再次,迄今如此好。但是當用戶點擊iframe中的鏈接時,供應商網站當然會重新加載並且高度不同,並且我的iframe不會再調整。

所以我的問題是:

  • 我可以自動調整我的iframe的高度每次賣家站點調整高度或加載了新的一頁?我該怎麼做?
  • 該計時器選項有非常糟糕的表現?

感謝和親切的問候

+1

輪詢它豈不是可能有jQuery的只是更新每個$(「a」)。click事件的iframe的src,還是不想將新內容加載到現有的iframe中? – ShelbyZ

+0

我真的不認爲它!我會嘗試。 –

回答

1

在這種情況下,它可能是最好的避免事件監聽,只是用遞歸setTimeout

function adjustmyiframe() { 
    var theFrame = $('#iFrameToAdjust', parent.document.body); 
    theFrame.height($(document.body).height() + 100); 
    setTimeout(adjustmyiframe, 1000); // check again in 1 second. 
} 
+0

是的,是一個非常好的主意,但我真的很關心這個表現,它是一個美國稅務相關的網站,所以在1月和2月比谷歌訪問更多:D –

+1

負擔在客戶端 - 流量無關緊要。 – AlienWebguy