Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript返回未定义_Javascript_User Agent - Fatal编程技术网

JavaScript返回未定义

JavaScript返回未定义,javascript,user-agent,Javascript,User Agent,我有一个问题,我的脚本它的工作,但它返回未定义。有人知道为什么吗 <div id="balise"></div> <a href="ty.html">Telecharger</a> <img src="aaa.png" id="mypic" alt="aa" /> <script> var OSName='', eight='windowseight.png', vista ='win

我有一个问题,我的脚本它的工作,但它返回未定义。有人知道为什么吗

<div id="balise"></div>
<a href="ty.html">Telecharger</a>
<img src="aaa.png" id="mypic" alt="aa" />
<script>
    var OSName='',
        eight='windowseight.png',
        vista ='windowsvista.png',
        xp ='windowsxp.png';
        if (navigator.userAgent.indexOf("Windows NT 6.2")!=-1) {OSName="Windows 8"+document.getElementById('mypic').setAttribute('src',eight)};
        if (navigator.userAgent.indexOf("Windows NT 6.1")!=-1) {OSName="Windows 7"+document.getElementById('mypic').setAttribute('src','windowseven.png')};
        if (navigator.userAgent.indexOf("Windows NT 6.0")!=-1) {OSName="Windows Visa"+document.getElementById('mypic').setAttribute('src',vista)};
        if (navigator.userAgent.indexOf("Windows NT 5.1")!=-1) {OSName="Windows xp"+document.getElementById('mypic').setAttribute('src',windowsxp)};
        document.getElementById("balise").innerHTML = OSName;
</script>
我的建议

<!DOCTYPE html>
<html>
<head>
<title>OS names</title>
<script type="text/javascript">
  var OS="unknown",
    OSObj={
        "seven"  :{ "name":"Windows 7",    "img":"windowseven.png"},
        "eight"  :{ "name":"Windows 8",    "img":"windowseight.png"},
        "vista"  :{ "name":"Windows Vista","img":"windowsvista.png"},
        "xp"     :{ "name":"Windows XP",   "img":"windowsxp.png"},
        "unknown":{ "name":"Not detected OS",      "img":"unknown.png"}
      };
  if (navigator.userAgent.indexOf("Windows NT 6.2")!=-1) OS="eight";
  if (navigator.userAgent.indexOf("Windows NT 6.1")!=-1) OS="seven";
  if (navigator.userAgent.indexOf("Windows NT 6.0")!=-1) OS="vista";
  if (navigator.userAgent.indexOf("Windows NT 5.1")!=-1) OS="xp";
  window.onload=function() {
    var thisOS = OSObj[OS];
    document.getElementById("balise").innerHTML = thisOS.name+'<img src="'+thisOS.img+'" alt="'+thisOS.name+'"/>';
  }
</script>
</head>
<body>
<div id="balise"></div>
<a href="ty.html">Telecharger</a>
</body>
</html>

为什么要连接setAttribute的返回,因为它没有返回值,因此添加了未定义的,将+替换为;。不客气。以下是如何