【问题标题】:refreshing a div with the <script> tag in it刷新带有 <script> 标签的 div
【发布时间】:2013-11-05 23:29:00
【问题描述】:

使用此代码,我想让 div 'refresh' 每 10 秒重新加载一次:

 <script type="text/javascript">
        var auto_refresh = setInterval(
        function(){
            $('#refresh').empty();
            $('#refresh').load('index.php?_=' +Math.random()+' #refresh').fadeIn("slow");
        }, 10000); // refresh every 10000 milliseconds
    </script>

代码与 div 中的&lt;ifram&gt; 标记一起使用,例如:

<div id="refresh" align="center" ><iframe src="//www.youtube.com/embed/wEhniGlFDtA?feature=player_detailpage" ></iframe></div>

但是当我想在 div 中放一个&lt;script&gt; 时,重新加载后的&lt;script .... &gt;&lt;/script&gt; 会消失,例如:

<div id="refresh" align="center" ><script language="javascript" src=" #some_ads_src "></script></div>

谁能告诉我问题出在哪里? (对不起我的英语,这里是新的)

【问题讨论】:

  • 这里的目标是制作一个包含广告的 div 并使其每 60 秒刷新一次,并且广告采用 形式,
  • 1. 如果&lt;script&gt; 标签在消失之前就已经存在,请不要担心!它包含的 JavaScript 仍被加载到内存中,并且将继续存在,除非有东西覆盖它。 2. 如果在页面加载后包含&lt;script&gt; 时页面消失,请检查脚本是否使用document.write。当文档未“打开”(即加载后)时对document.write 的任何调用都将调用document.open。这将清除 DOM 树,因为它基本上将 HTML 设置为空字符串。

标签: javascript php html refresh reload


【解决方案1】:

这一行从#refresh 中删除所有子节点,包括嵌入的脚本标签

$('#refresh').empty();

...然后这一行从服务器加载数据并将返回的 HTML 放入 #refresh:

$('#refresh').load('...').fadeIn("slow");

显而易见的解决方案是#refresh 应该为空,因为它的内容将由 AJAX 加载。内部script 标签应该移到其他地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-06
    • 2012-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多