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的返回,因为它没有返回值,因此添加了未定义的,将+替换为;。不客气。以下是如何