我通过jQuery AJAX下载了一个完整的html网页。我想用通过ajax下载的内容替换当前页面的内容。我用document.write()来做。它无法正常工作,因为每当我尝试修改哈希时,都会重新加载网页。
我知道在IE中它需要一个iframe,但这不是问题,因为我使用的是jQuery History插件。问题是由于使用了document.write(),但我不知道为什么。
index.php - >主入口点,下载JS代码以在散列后解析URL并调用request.php。
request.php - >请求入口点。它返回网页。
当我模拟对request.php的直接请求并且下载的网页更新哈希时,它工作正常。
当我模拟对 index.php 的原始请求时,它不起作用(仅限FFox),该请求通过 request.php 和下载的页面下载网页修改哈希。
我使用document.write()将网页内容写入当前窗口。所以问题在于“正在编写”文档中哈希的修改。
答案 0 :(得分:0)
不要使用document.write()
。
改为使用$('your selector').html(your_html_fetched_via_ajax);
答案 1 :(得分:0)
我认为您无法修改整个html对象,因为这意味着删除了对javascript script
标记的引用。我想说你最好的选择是直接链接到request.php页面或只是更改正文标记
$('body').html(response_html);
我同意harshath.jr,不要使用document.write()
。
答案 2 :(得分:0)
指向iframe的人是正确的。添加iframe,只需将src属性设置为您正在获取的页面......您甚至不需要request.php。
如果你真的想在没有iframe的情况下尝试加载html,你可以解析头部中的元素并将它们添加到文档中,并解析内容并将它们添加到当前页面正文。但是,它无法保证正确显示。我认为iframe真的是你想要的。