原本页面上有button,调用函数后,document.write执行后,button就没了?

来源:8-13 userAgent

慕数据1008917

2017-02-22 17:05

为啥?

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>navigator</title>
<script type="text/javascript">
  function validB(){ 
    var u_agent =navigator.userAgent       ; 
    var B_name="不是想用的主流浏览器!"; 
    if(u_agent.indexOf("Firefox")>-1){ 
        B_name="Firefox"; 
    }else if(u_agent.indexOf("Chrome")>-1){ 
        B_name="Chrome"; 
    }else if(u_agent.indexOf("MSIE")>-1&&u_agent.indexOf("Trident")>-1){ 
        B_name="IE(8-10)";  
    }
        document.write("浏览器:"+B_name+"<br>");
        document.write("u_agent:"+u_agent+"<br>"); 
  } 
</script>
</head>
<body>
  <form>
     <input type="button" value="查看浏览器" onclick="validB()"  >
  </form>
</body>
</html>


写回答 关注

2回答

  • FatMi
    2017-02-22 19:36:55
    已采纳

    点击按钮以后,调用validB()函数。函数的结果就是输出浏览器的相关信息,也就是显示出来。

    FatMi 回复慕数据100...

    其实就是document.write(); 输出内容时新打开了一个页面。 消失原因是执行document.write时文档流已关闭,而document.write是打开文档流再写入,此时是一个新的页面,按钮在旧的页面上,所以看不到了。具体可以查查“为什么document.write()会清空原来的内容”,有前辈给了详细例子与解释。

    2017-02-23 19:34:09

    共 2 条回复 >

  • qq_霜_2
    2018-05-05 21:01:11

    YES,这就是为什么之前特别讲解了使用document要注意的关键点了,会覆盖文档输出流,意思就是会覆盖之前已经编写,展现出来的页面

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468061 学习 · 21891 问题

查看课程

相似问题