2011-05-16 87 views
9

我有这部分代码。当页面被加载的时候,所有的div都被加载,但还没有可见。点击时是否开始加载div的内容?现在页面放慢,因为所有div的只加载div iframe onclick

<a href="#?w=550" rel="popup_add_dossier" class="poplight" title="'.$lang['form_add'].'"><img src="images/icon/new.png" ></a> 

<div id="popup_add_dossier" class="popup_block"> 
<iframe src="add_dossier.php" frameborder="0" scrolling="no" width="550" height="400"> 
+1

你为什么不使用AJAX技术,在一个特定的DOM事件,而不是iframe来动态加载在一个div的内容? – 2011-05-16 10:13:43

+1

当只涉及JavaScript和HTML时,为什么这个问题被标记为'php'? – 2013-06-11 03:05:52

回答

14

您的意思是只在点击某个元素时才加载div中的iframe?如果是这样,您可以从iframe标记中删除iframe src属性,并仅在单击元素时设置src。

在IFRAME:

<iframe id='ifr' frameborder="0" scrolling="no" width="550" height="400"> 

在可点击的元素:

onClick='document.getElementById("ifr").src="add_dossier.php";' 
+0

伟大的解决方案虽然我不能让它与图像添加onclick div显示,但空。 – Muiter 2011-05-16 10:33:02

+0

您是否在iframe上添加了id?看看javascript控制台是否会引发一些错误 – mck89 2011-05-16 10:35:55

+0

是的,我有。错误是Uncaught SyntaxError:Unexpected token}这是完整的行:echo'​​'; – Muiter 2011-05-16 10:43:21

3

jQuery的很容易!

<head>部分中加载以下内容。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script> 
<script> 
jQuery(function(){ 
    $("iframe").each(function(){ 
     this.tmp = this.src; 
     this.src = ""; 
    }) 
    .parent(".popup_block") 
    .click(function(){ 
     var frame = $(this).children("iframe")[0]; 
     console.log(frame);  frame.src = frame.tmp; 
    }); 
}); 
</script> 
1
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script> 
<script type="text/javascript"> 
$(function(){ 
    $('#button').click(function(){ 
     if(!$('#iframe').length) { 
       $('#iframeHolder').html('<iframe id="iframe" src="http://google.com" width="700" height="450"></iframe>'); 
     } 
    }); 
}); 
</script> 

<a id="button">Button</a> 
<div id="iframeHolder"></div>