2

我想让一个简单的 HTML 文件充当第二个 HTML 文件的引导程序(将使用 AJAX 加载,然后使用 javascript 处理),它将完全取代第一个。

引导程序.htm

  1. 使用 AJAX 加载 content.htm(jQuery 适合这项工作)
  2. 使用 javascript 修改内容(需要各种自定义过滤器/修改)
  3. 用新修改的内容替换自己

我预计这可能不是 100% 可能,因为替换 doctype 可能很难,但我希望替换所有正文内容和所有头部内容(也许只是 HTML 的所有内容?)

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

编辑:我试图直接做我真正想做的事......

$.get("content.htm", function(d) {
  console.log(d);
  return $(document).html(d);

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

编辑:迄今为止最好的解决方案(仍然是概念性的)

  • bootstrap.htm加载,并且非常小心地只创建一个全局变量(比如说bs
  • bootstrap.htm然后加载content.htm文件,并进一步处理它
  • bootstrap.htm用处理的标签html的内容替换标签内容content.htmhtml
  • bootstrap.htm然后搜索新内容,并执行任何内联 javascript,注意不要执行已经执行的代码
  • bootstrap.htm删除它的全局变量(虽然在这个阶段没有什么意义,当大部分导入的代码已经运行时)

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

4

2 回答 2

0

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

$('body').load( url,[data],[callback] );
于 2012-06-29T12:16:02.687 回答
0

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

另请参阅:调用从 Ajax 响应返回的 JavaScript 函数

于 2012-06-29T12:27:39.620 回答