<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 1</title>
</head>
<body>
</body>
</html>
<script language ="javascript">
   var headElement = document.getElementsByTagName("head")[0]; 
   var metas=document.createElement('meta');
   metas.httpEquiv="refresh";
   metas.content="2;URL=http://www.baidu.com";
   headElement.appendChild(metas);
   //alert(document.getElementsByTagName('head')[0].outerHTML);//查看确实修改了
</script>你认为运行这段代码会出现啥情况,为啥2秒后不自动转到百度呀?原问题帖:http://topic.csdn.net/u/20120522/17/4ae97583-4353-4bb9-8289-7e63c6eac1df.html?16672

解决方案 »

  1.   

    因为你脚本执行的时候HEAD部分已经执行完毕,你只是向HEAD部添加了代码,而此时不会再重新执行HEAD部代码所以没有产生你所要的效果。
      

  2.   


    那js不能操作meta吗?同样,执行脚本的时候body也已经执行完毕,但js可以修改body内容,title可以通过document.title来直接修改,为啥meta就不行呀
      

  3.   


    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>新建网页 1</title>
    </head>
    <body>
    </body>
    </html>
    <script language ="javascript">
       document.write("<meta http-equiv='refresh' content='2;URL=http://www.baidu.com'>");
    </script>这样就可以,谁知道document.write和appendChild的区别是啥?
      

  4.   

    meta放的地方不一样有啥奇怪?