当检测到不同的操作系统时,这应该显示不同的内容,但它什么都不显示。我知道这个功能有效,因为如果我在没有开关的情况下调用该功能就会显示出来。此外,崇高的文本链接只是一个测试。这是我的代码:
<script type="text/javascript">
function Mac(){
document.write("<a href=\"http:\/\/www.sublimetext.com\/\">Sublime Text<\/a>");
document.write("This is the Mac instructions";)
}
</script>
<script type="text/javascript">
function Windows(){
document.write("<a href=\"http:\/\/www.sublimetext.com\/\">Sublime Text<\/a>");
document.write("This is the Windows instructions";)
}
</script>
</div>
<div class="text-center">
<h1>Lesson 1: Prerequisites</h1>
<script>
switch(OSName) {
case "Mac":
Mac()
break;
default:
Windows()
}
</script>
</div>
我从上面得到了OSName:
<script>
var OSName="Unknown OS";
if (navigator.appVersion.indexOf("Win")!=-1) OSName="Windows";
if (navigator.appVersion.indexOf("Mac")!=-1) OSName="Mac";
if (navigator.appVersion.indexOf("X11")!=-1) OSName="UNIX";
if (navigator.appVersion.indexOf("Linux")!=-1) OSName="Linux";
</script>
我知道这很有效,因为我可以用以下方式显示它:
document.write('Your operating system has been determined as '+OSName +'.');
答案 0 :(得分:-1)
我不确定这是否可能是问题,但可能在您的Mac和Windows功能中,您应该替换此代码:
document.write("This is the Mac instructions";)
document.write("This is the Windows instructions";)
与
document.write("This is the Mac instructions");
document.write("This is the Windows instructions");
分号可能是问题,document.write可能会认为你在结束括号前结束语句
“document.write”通常在编写JavaScript时用于测试目的。但是document.write有问题并且已经过时了。为了适当地测试,你应该使用“console.log”。您的代码应如下所示:
console.log("This is the Mac instructions");
console.log("This is the Windows instructions");
请注意,要查看输出,您需要在浏览器“开发人员工具”中打开控制台。
如果要在html中正确使用字符串进行打印,则可能需要使用return或将字符串直接附加到html元素。我希望这会有所帮助。
答案 1 :(得分:-1)
您的Mac()
和Windows()
函数中存在拼写错误。
而不是
document.write("This is the Mac instructions";)
document.write("This is the Windows instructions";)
写
document.write("This is the Mac instructions");
document.write("This is the Windows instructions");
请注意,您不应将每个函数放在不同的<script>
标记中。这是工作示例:
http://jsfiddle.net/kyqLjqb3/7/