document.write()之后的URL哈希修改

时间:2009-12-29 09:58:20

标签: javascript jquery html

我通过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()将网页内容写入当前窗口。所以问题在于“正在编写”文档中哈希的修改。

3 个答案:

答案 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真的是你想要的。