JavaScript函数 - 更改DIV中的内容

时间:2011-08-06 15:59:14

标签: javascript jquery html loading

我有问题。我有这个功能:

    function isDone()
{ 
    if(isDone){
    $("#loadingStatus").html("NOT DONE...");
    }else{
    $("#loadingStatus").html("#isDone");    
    }
}

以上代码不起作用。上面的代码是检查iFrame中的内容是否已完成加载。

我想要的是有一个div,表示它是否未加载“NOT DONE ...”但是如果它已加载,则将另一个DIV输出到#loadingStatus div。

更新:

这是我的100%代码。

<?php
$key = $_GET['key'];
$s=mysql_query("SELECT * FROM advertisements WHERE `key`='$key'")
or die(mysql_error());
$r=mysql_fetch_assoc($s);

?>
<script type="text/javascript" src="../divided/js/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="../dream/js/iframeLoad.js"></script>

<script type="text/javascript">
function isDone()
{ 
    if(isDone){
    $("#loadingStatus").html("Waiting for your advertisements to load...");
    }else{
    $("#loadingStatus").html($("#isDone").html());  
    }


}
</script>
</head>

<div style="height:10%">
    <table style="border:black;">
        <tr>
            <td><img src="../dream/images/logo.png"></td>
            <td><div id="loadingStatus"></div></td>
            <td>3</td>
        </tr>
    </table>

    <div id="isDone" style="display:none">

    </div>



</div>



<iframe onload="isDone()" src="<?php echo $r['url']; ?>" width="100%" height="90%" scrolling="auto" frameborder="0">
<p>Your browser does not support iframes.</p>
</iframe>

7 个答案:

答案 0 :(得分:1)

您可能正在寻找:

$("#loadingStatus").html($("#isDone").html());

编辑:在您的代码中,isDone是一个函数,而不是一个变量。据我所知,你必须做类似的事情:

$(document).ready(function() {
    $("#loadingStatus").text("Waiting for your advertisements to load...");
});

function isDone()
{ 
    $("#loadingStatus").html($("#isDone").html());  
}

答案 1 :(得分:1)

因为在加载iFrame之前不会调用该函数,所以不会显示未加载的消息。

您需要在isDone div。

中添加一些默认文字

答案 2 :(得分:1)

http://jsfiddle.net/sMGTU/

<?php
    $key = $_GET['key'];
    $s=mysql_query("SELECT * FROM advertisements WHERE `key`='$key'")
    or die(mysql_error());
    $r=mysql_fetch_assoc($s);
?>

<script type="text/javascript" src="../divided/js/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="../dream/js/iframeLoad.js"></script>
<script type="text/javascript">
var iFrameLoaded=false;

function checkDone(iFrameLoaded)
{
    iFrameLoaded
       ? $("#loadingStatus").html("Finished Loading")
       : $("#loadingStatus").html("Waiting for your advertisements to load...");
}

</script>
</head>

<div style="height:10%">
    <table style="border:black;">
        <tr>
            <td><img src="../dream/images/logo.png"></td>
            <td><div id="loadingStatus"></div></td>
            <td>3</td>
        </tr>
    </table>
    <div id="isDone" style="display:none"></div>
</div>

<iframe onload="checkDone(true);"
        src="<?php echo $r['url']; ?>"
        width="100%" height="90%"
        scrolling="auto"
        frameborder="0">
   <p>Your browser does not support iframes.</p>
</iframe>

答案 3 :(得分:0)

如果你想创建一个新的div:

$("#loadingStatus").append($("<div/>").text("Done."));

如果你想从其他地方移动div:

$("#loadingStatus").append($("#isDone"));

如果你想从其他地方复制div:

$("#loadingStatus").append($("#isDone").clone());

如果要移动元素的内容:

$("#loadingStatus").append($("#isDone").children());

如果要复制元素的内容:

$("#loadingStatus").append($("#isDone").children().clone());

更新

查看其余代码会发现更多问题。由于您没有任何确定内容是否已加载的变量,并且仅在加载内容后调用该函数,因此只需输入用于更改函数内容的代码。将初始消息直接放在元素中。

function isDone() { 
  $("#loadingStatus").append($("#isDone").children().clone());
}

答案 4 :(得分:0)

代码中的isDone变量设置在哪里?你有iframe的任何加载事件处理程序吗?

试试这个

$(function(){

 $("#loadingStatus").html("Waiting for your advertisements to load...");

var isDone = false;
function checkIsDone()
{ 
    if(isDone){
       $("#loadingStatus").html("NOT DONE...");
    }else{
       $("#loadingStatus").html($("#isDone").html());    
    }
}

$("iframeSelector").load(function(){

  isDone = true;

});

checkIsDone();

});

答案 5 :(得分:0)

好吧,NOTDONE 永远不会出现,因为没有可以评估isDone的{​​{1}}变量。似乎这种逻辑也是相反的。

相反,在主文档加载时设置“未完成”消息,然后在加载iFrame文档时将其替换为“done”消息:

true

就是这样;这就是你需要的所有Javascript。从你的// on document load: $(function() { // set "waiting" message: $("#loadingStatus").html("Waiting for your advertisements to load..."); // on iframe load: $('#myIFrame').load(function() { // set "done waiting" message: $("#loadingStatus").html($("#isDone").html()); }); }); 标记中取出那个可怕的onLoad属性并为该东西提供一个ID:

iframe

答案 6 :(得分:0)

  

功能 isDone ()
  {
  如果(的 isDone ){

我认为您的问题可能是您有一个名为isDone的布尔变量,而您的函数定义变量名为isDone,其中一个应该被称为其他内容。