HTML文件,通过AJAX加载另一个HTML,然后替换自己

时间:2012-06-29 12:10:16

标签: jquery html ajax

我希望有一个简单的HTML文件作为第二个HTML文件的引导程序(将使用AJAX加载,然后使用javascript处理),这将完全取代第一个。

bootstrap.htm

  1. 使用AJAX加载content.htm(jQuery适用于此作业)
  2. 使用javascript修改内容(需要各种自定义过滤器/修改)
  3. 将自己替换为新修改的内容
  4. 我希望它可能不是100%可能,因为替换doctype可能很难,但我希望替换所有正文内容和所有主要内容(可能只是HTML的所有内容)并不太难? )

    有没有人对如何解决这个问题有任何建议?

    <编辑:编辑:我试图直接做我真正想要的事情......
    $.get("content.htm", function(d) {
      console.log(d);
      return $(document).html(d);
    

    但这不起作用,给我留下了一个空文件     });

    编辑:目前为止的最佳解决方案(仍然是概念性的)

    • bootstrap.htm加载,并且非常小心只创建一个全局变量(假设为bs
    • bootstrap.htm然后加载content.htm文件,并进一步处理
    • bootstrap.htmhtml代码内容替换为已处理content.htm的{​​{1}}代码
    • 的内容
    • html然后搜索新内容,并执行任何内联javascript,小心不要执行已执行的代码
    • bootstrap.htm删除了它的全局变量(尽管在此阶段没有什么意义,因为大部分导入的代码已经运行)

    这仍然不允许更改DOCTYPE,并且执行导入的代码似乎有点不可靠,但这是我迄今为止最好的想法。

2 个答案:

答案 0 :(得分:0)

当然可以。你有没有尝试过?提示:

$('body').load( url,[data],[callback] );

答案 1 :(得分:0)

我认为主要的警告是未执行的JavaScript代码。如果你正在加载&#34; pure&#34; HTML,我认为其他用户建议的方法(以及您预见到的)将会很好,前提是不会更改docype和HEAD。

另请参阅:Calling a JavaScript function returned from an Ajax response