切换不激活功能

时间:2014-11-22 16:26:36

标签: javascript html

当检测到不同的操作系统时,这应该显示不同的内容,但它什么都不显示。我知道这个功能有效,因为如果我在没有开关的情况下调用该功能就会显示出来。此外,崇高的文本链接只是一个测试。这是我的代码:

<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 +'.');

2 个答案:

答案 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/