2011-04-25 44 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 */ });