求助:使用ajax方式获取新页面内容替换当前整个页面,并执行新页面脚本

zyballcn 2011-11-22 09:00:40
在当前页面内,使用ajax方式获取一个新网页的内容,
替代当前网页,包括:显示新网页所有内容,执行新网页该执行的脚本。

用jQuery可以实现,代码如下:
$(function()
{
$.ajax({
url: "show.htm",//目标页面
dataType: "html",
type: "GET",
cache: false,
success: function(html)
{
$("html").html(html);
}
});
});
但是自己写JavaScript代码却搞不定,几个浏览器结果不一样,代码如下:
window.onload=function()
{
var xhr = null;
try
{
xhr = new window.XMLHttpRequest();
} catch( e ) {}
if(xhr == null)
{
try
{
xhr = new window.ActiveXObject( "Microsoft.XMLHTTP" );
} catch( e ) {}
}
if(xhr != null)
{
xhr.open("GET", "show.htm", false);
xhr.send();
if(xhr.status == 200)
{
var html = document.getElementsByTagName("html");
html[0].innerHTML = xhr.responseText;
}
delete xhr;
xhr = null;
}
}

IE8浏览器:
无法设置innerHTML属性。该操作的目标元件无效。

firefox浏览器替代了页面,但是脚本未执行

360安全浏览器,不执行也不报错

谁明白,指点一下,谢谢

或者该怎么用JavaScript模仿jQuery那几句话呢?
...全文
2896 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyballcn 2011-11-23
  • 打赏
  • 举报
回复
这个值是正确的,200
[Quote=引用 3 楼 mubeibei 的回复:]
xhr.status 你弹出一下这个值是多少
[/Quote]
MuBeiBei 2011-11-22
  • 打赏
  • 举报
回复
xhr.status 你弹出一下这个值是多少
zyballcn 2011-11-22
  • 打赏
  • 举报
回复
jQuery方式用$("html")没问题
我的问题是自己写JavaScript不行。

[Quote=引用 1 楼 mubeibei 的回复:]
$("body").html(html);


用body别用html
[/Quote]
MuBeiBei 2011-11-22
  • 打赏
  • 举报
回复
$("body").html(html);


用body别用html

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧