2011-04-25 15 views
2

你好,我在尋找幫助創建回調在某些情況下有困難。如果語句後jquery回調

我有一段代碼,它將一個鏈接頁面加載到iframe中,然後在另一個鏈接被按下時更改scr。

$(".iframe").hide(); 
$(".lnk").click(function(){ 
$(".iframe").show('slow') 
;}) 
; 
$(".frmclose").click(function(){ 
$(".iframe").hide('slow') 
;}) 
; 

(文件)在上述運行。就緒下面 是這個之外(由於某種原因,它不會在裏面工作)

function changeIframeSrc(id, url) { 
if (!document.getElementById) return; 
var el = document.getElementById(id); 
if (el && el.src) {el.src = url;return false;}return true;} 

鏈接:

<a href="http://www.google.com" onclick="return changeIframeSrc('ifrm', this.href)" class="lnk">google</a> 

在此之前,我已經在其中的iframe中的div被取消隱藏。我也有一個隱藏div + iframe的div內的按鈕。

有什麼即時通訊問題是一旦iframe已被打開,然後通過div鏈接關閉,如果通過點擊不同的鏈接iframe取消隱藏顯示舊頁面然後改變重新打開。但我想要的是框架加載新頁面(隱藏),然後取消隱藏以顯示它。我想在iframe src更改後使用回調,但我不知道我會在哪裏實現它。

Example of it happening (點擊GDPH按鈕查看的iframe的鏈接)

任何想法或幫助表示讚賞。

問候

乙斯托納

+0

一部分是已經在這裏http://stackoverflow.com/questions/205087/jquery-ready-in-a-dynamically-inserted-iframe – andyb 2011-04-25 15:27:55

回答

1

我認爲所有你需要做的是明確的的src當它被關閉。這將清除頁面,以便下次顯示iFrame時,它將再次從空白處開始。

我做了一個small demo這個功能,使用您的網頁的3個鏈接爲例。 開始隱藏(通過CSS),每個鏈接將顯示,然後加載遠程站點。我添加了一個關閉iframe鏈接以模擬您網站上下的關閉鏈接。

希望這會有所幫助!

編輯:更新了演示鏈接以包含回調部分。不知何故,當我讀到這個問題時錯過了!

編輯2:您的changeIframeSrc函數不工作是因爲它是在jQuery匿名函數內部定義的,並且是閉包。請參閱calling Jquery function from javascript

+0

這是完美的解決方案回答,非常感謝你您的幫助。 – 2011-04-25 16:20:02

+0

+1是一個很好的問題。我很樂意幫助:-) – andyb 2011-04-25 17:22:10

1

我會捕獲iframe的​​事件,這會在文檔加載到iframe之後觸發。你的問題的

$(".iframe").load(function { /* code to run when iframe is loaded */ });