我(在用户的帮助下)已经做了一个页面,它具有读取txt文件上的值的功能,如果它是“1”,则会出现带有iframe的fancybox(版本2)。
代码ReadAndAppear.php
<?php
$lines = file('alerta.txt');
$valrec= $lines[0];
echo $valrec;
if($valrec == 1){
?>
<script type="text/javascript">
jQuery(document).ready(function($){
$.fancybox({
href: "alert.php",
type: "iframe"
});
}); //ready
</script>
<?php
}; // closes if
?>
所以,如果 valrec 是“1”,请尝试重新加载此函数/页面( 5-5秒)以显示fancybox >我创建了一个新页面,我们称之为index.php
index.php代码
头
<script type="text/javascript">
var auto_refresh = setInterval(
function ()
{
$('#ReadAndAppear').load('ReadAndAppear.php').fadeIn("slow");
}, 50000); // refresh every 10000 milliseconds
</script>
体
<div id="ReadAndAppear"></div>
遗憾的是,当 valrec = 1 时,此代码不会使fancybox出现在index.php上。此算法仅刷新并显示图像, echos 等,但不是 fancybox 。
我如何刷新并出现在 index.php 上,或者更好地出现在 ReadAndAppear.php
上感谢
答案 0 :(得分:0)
最好将fancybox功能存储在单独的JS文件中。然后你可以在ReadAndAppear加载函数的回调中调用它 -
<script type="text/javascript">
var auto_refresh = setInterval(
function ()
{
$('#ReadAndAppear').load('ReadAndAppear.php').fadeIn("slow", function(){
$.getScript('fancybox.js'); // gets and runs script
});
}, 50000); // refresh every 10000 milliseconds
</script>
在ReadAndAppear.php中,您可以进行更改以加载相同的脚本 -
<?php
$lines = file('alerta.txt');
$valrec= $lines[0];
echo $valrec;
if($valrec == 1){
?>
<script type="text/javascript">
jQuery(document).ready(function($){
$.getScript('fancybox.js');
}); //ready
</script>
<?php
}; // closes if
?>
现在将脚本放在自己的文件 facybox.js
中$.fancybox({
href: "alert.php",
type: "iframe"
});
老实说,这样做既有好处也有坏处。我认为,正如我在评论中所说,我认为你的逻辑需要重新思考一下。如果我的代码组织得很好并且项目中包含的内容不同,我就不必使用$.getScript()
。这将更容易维护。
答案 1 :(得分:0)
将脚本移动到index.php中,我会这样做:
<script type="text/javascript">
var myRefresh;
jQuery(document).ready(function($){
myRefresh = setInterval(function(){
<?php
$lines = file('alerta.txt');
$valrec= $lines[0];
echo $valrec; // do you need this echo ?
if($valrec == 1){
?>
$.fancybox({
href: "alert.php",
type: "iframe"
});
<?php } else { ?>
clearInterval(myRefresh); // cancel interval if $valrec != 1
<?php
}; // closes if else (php)
?>
},5000); // setInterval
}); //ready
</script>