你好,我在某些情况下难以找到创建回调的帮助。
我有一段代码可以将链接页面加载到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
答案 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 */ });