if语句后的jquery回调

时间:2011-04-25 14:32:55

标签: javascript jquery iframe callback show-hide

你好,我在某些情况下难以找到创建回调的帮助。

我有一段代码可以将链接页面加载到iframe中,然后在按下另一个链接时更改scr。

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

以上在(文件).ready中运行 下面是在这之外(由于某种原因,它在内部不起作用)

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变为unhidden。我在div中也有一个隐藏div + iframe的按钮。

有问题的是,一旦iframe被打开然后通过div链接关闭,如果通过点击其他链接重新打开iframe取消显示旧页面然后更改。但我想要的是框架加载新页面(隐藏)然后取消隐藏显示它。我想在iframe src改变之后使用回调,但我不知道我将在哪里实现它。

Example of it happening (点击GDPH按钮查看iframe的链接)

任何想法或帮助表示赞赏。

此致

B Stoner

2 个答案:

答案 0 :(得分:1)

我认为您需要做的就是在src关闭时清除<iframe>。这将清除页面,以便下次显示iFrame时,它将再次开始为空白。

我提供了此功能的 small demo ,该功能使用您网页中的3个链接作为示例。 <iframe>开始隐藏(通过CSS),每个链接将显示<iframe>,然后加载远程站点。我添加了关闭iframe 链接,以模拟您网站上<iframe>下的关闭链接。

希望这有帮助!

编辑:更新了演示链接以包含回调部分。当我读到这个问题时,不知怎的错过了!

编辑2:您的changeIframeSrc函数无效是因为它是在jQuery匿名函数中定义的并且是一个闭包。见calling Jquery function from javascript

答案 1 :(得分:1)

我会抓住iframe的.load()事件,这会在文档加载到iframe后触发。

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