文档.在已经加载和关闭的网站上写

document.write on already loaded and closed website

本文关键字:网站 加载 文档      更新时间:2023-09-26

我有一个显示新闻文章的网站。

现在我已经为文章实现了ajax重载,所以我可以从一个页面切换到另一个页面,而无需重新加载整个页面。(如在新闻应用程序)

每篇文章都有一个广告框。这个盒子里装满了一则广告,广告与document.write一起放在那里。(OpenX)

当我现在重新加载一篇文章,框的内容不能写在那里,因为我的文档已经关闭,新的文章只加载那里与jQuery和AJAX。所以当我重新加载文章的内容在文档中。Write不能写进框里,而只是放在我的网站下面,这看起来像某种错误代码。

我的问题是。我怎样才能把内容放进盒子里?是否有一种方法可以打开一个封闭的文件来写它,或者我需要替换所有的文件。例如,使用jQuery append();?

我已经尝试用jQuery append()代替一些部分;但是我也遇到了一些问题,比如这个工作得很好:

document.write ("<td style='width:100px;'>"); //old
jQuery("#werb1").append("<td style='width:100px;'>"); //new 

但是这个根本不起作用:

document.write ("<scr"+"ipt type='text/javascript' src='"+m3_u); //old
jQuery("#werb1").append("<scr"+"ipt type='text/javascript' src='"+m3_u) //new

m3_u是保存在变量中的URL,如https://ad.domain.openx/www/delivery/ajs.php

不能传递给已经呈现的表。您需要呈现整个表并关闭脚本标记

如果你在网站上使用动态内容,你可以考虑使用ANGULARJS或ReactJS或Meteor

这里有一套完整的工具,可以真正帮助你构建这样的web应用。

但是如果你需要删除表格,在你的变量中建立整个HTML并把它放在网站上。即使你正确地放置了TD,浏览器也会将TD或tr推到表外。

JavaScript document.write仅在页面加载时执行。因此,如果您正在使用Ajax,则不能在文档加载后使用document.write,否则它将覆盖页面上所有现有内容。

使用Ajax和document.write最初是一个坏主意,因为广告不会在Ajax请求上重新加载。

最好的方法是使用Ajax而不是document.write,如果可能的话。因为您已经有工作的Ajax代码,它应该不难实现相同的功能,以及广告。

但如果这不是一个选项,那么你可以使用jQuery append()。例如,如果您的旧代码看起来像这样:

<div>
  <script>
    document.write("<h1> Heading </h1>");
  </script>
</div>

则可以替换为:

$("div").append("<h1> Heading </h1>");

两者将产生相同的结果:

<div>
  <h1> Heading </h1>
</div>

最后,如果你知道服务器端脚本,那么你可以使用Ajax和创建交互式现代网站。