我有一个显示新闻摘要的网站。
现在我已经为articel实现了ajax重载,所以我可以 从一个切换到另一个而不重新加载整个页面。 (就像在新闻应用中一样)
每个关节都有一个广告框。此框中填充了一个广告,该广告放在document.write中。 (OpenX的)
当我现在简单地说明盒子的内容不能写在那里因为我的文档已经关闭而且新的articel只用jQuery和AJAX加载。因此,当我将文档中的内容简单地写入文件时,写入框中,而不是放在我的网站上,看起来像某种错误代码。
现在我的问题是。如何将内容放入盒子?有没有打开一个封闭的文档来写它或我需要替换所有document.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是保存在变量中的网址,如https://ad.domain.openx/www/delivery/ajs.php
答案 0 :(得分:1)
您无法传递到已渲染的表格。您需要重新呈现整个表并关闭脚本标记
如果您在网站上使用动态内容,则可以使用ANGULARJS或ReactJS或Meteor
以下是完整的工具集,可以帮助您构建此类Web应用程序。
但是你需要删除表,在变量中构建完整的HTML并将其放在网站上。浏览器,即使你正确地放置TD,也会将td或tr推到桌子之外。
答案 1 :(得分:1)
JavaScript document.write
仅在页面加载时执行。因此,如果您使用 Ajax ,则在加载文档后无法使用document.write
,或者它将覆盖页面上的所有现有内容。
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并创建交互式现代网站。