我有问题。我有这个功能:
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>
答案 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)
<?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
,其中一个应该被称为其他内容。