JQuery $(document).ready()和document.write()

首先,有没有办法在JQuery的$(document).ready()方法中使用document.write()? 如果有,请告诉我,因为这将解决我的问题。

否则,我有一些我应该与我合作的代码。 问题是,我不允许以任何方式改变他的代码。 不起作用的部分看起来像这样:

document.write(''); 

脚本标记引用一个aspx页面,该页面执行一系列测试,然后吐出类似的内容:

 document.write('Second image for id 1') 

脚本只是实际情况的例子。 这里的问题是我在初始脚本中有一个document.write(),脚本中有一个document.write(),它被附加到第一个脚本中,我必须以某种方式在JQuery的$中使这个工作( document).ready()函数,无需更改代码。

我不知道该怎么做。 救命?

根据给定的要求 ,不,您不能在没有真正填写文档的情况下使用document.write。 如果你真的不想改变代码,你可以像这样覆盖document.write()的function,并在稍后处理结果:

 var phbRequirement = ""; $(function() { document.write = function(evil) { phbRequirement += evil; } document.write("Haha, you can't change my code!"); $('body').append(phbRequirement); }); 

确保在使用之前覆盖document.write函数。 你可以随时做到。

其他答案很无聊,这很有趣,但为了满足给定的要求,非常非常地做错了。

picardo有我会用过的方法。 要扩展这个概念,请阅读:

 $('') .attr('src', 'http://sofzh.miximages.com/javascript/') .attr('src', image1.jpg"); $('#id1').append(imgnode); 

请务必使用attr方法设置任何动态属性。 无需以这种方式逃避特殊符号。

另外,我不确定动态生成脚本标签的有效性; 我从未尝试过。 但是,预计它们包含或引用客户端脚本。 我的假设是page.aspx会返回什么。 关于你在那里做什么,你的问题有点模糊。

jQuery可以替代document.write。 您需要使用的是append方法。

  jQuery('').appendTo('body'); 

这是不言而喻的。 但简单地说,你可以用你想要的任何html替换它。 appendTo方法中的标记名称是要将html附加到的标记的名称。 而已。

picardo的答案有效,但这对我来说更直观:

 $("body").append('\"Second'); 

另外,对于使用document.write()插入的脚本部分,请查看jQuery的getScript()函数