Javascript 如何调用函数

Javascript 如何调用函数,javascript,function,call,external,Javascript,Function,Call,External,我已经寻找这个问题的答案4个小时了,但没有成功 嗯,我要做的是执行一个函数,如果用户使用某个浏览器,它会做一些事情 我在页面的头部有一个用于检测浏览器、版本和操作系统的脚本,它可以正常工作 如果我在我的页面主体中使用下面的代码,它就可以正常工作 <script type="text/javascript"> if (BrowserDetect.browser == "Chrome") { document.write("You're using Chrome") } else

我已经寻找这个问题的答案4个小时了,但没有成功

嗯,我要做的是执行一个函数,如果用户使用某个浏览器,它会做一些事情

我在页面的头部有一个用于检测浏览器、版本和操作系统的脚本,它可以正常工作

如果我在我的页面主体中使用下面的代码,它就可以正常工作

<script type="text/javascript">
if (BrowserDetect.browser == "Chrome")
{
   document.write("You're using Chrome")
}
else
{
    document.write("You're not using Chrome")
}
</script>

正如您所看到的,它与网页主体中的代码完全相同。但是当它被放入一个函数并在加载时被调用时,它就不起作用了。为什么?

尝试将函数名更改为BrowserDetect以外的名称。

尝试将函数名更改为BrowserDetect以外的名称。

因为您已将被调用的方法命名为与您使用的
BrowserDetect
对象相同的名称

试一试

并称之为

<body onload="BrowserDetectMethod();">

因为您将被调用的方法命名为与您使用的
浏览器检测对象相同的方法

试一试

并称之为

<body onload="BrowserDetectMethod();">

我从一开始就遇到的真正问题是,如果我在页面上有脚本,我的脚本就可以工作,但我希望它们在外部样式表中,如果我在外部脚本表中有脚本,脚本就不能工作。所以我发现了如何修复它,我将在下面列出我为使上面列出的一切完美工作所做的一切

对于那些想知道我是如何检测到浏览器的人,我从以下网站获得了它:。 这很好用,而且更容易用普通的javascript检测

首先,函数的名称应该不是BrowserDetect;我把它命名为BrowserDetectMethod,就像Gaby建议的那样

第二,如果要在外部样式表中包含函数,则需要在页面底部调用外部样式表。不像我想的那样在页首

第三:

我决定最好的浏览器嗅探方法是找到我想要联系的浏览器,而不是那些我没有联系的。(因为有很多浏览器,我只想联系三个)

但是,使用上述方法,我无法做到这一点,因为此代码不起作用:

function BrowserDetectMethod()
{
    if (BrowserDetect.browser != "Chrome" && BrowserDetect.browser && "Safari" ||BrowserDetect.browser && "Firefox" )
    {
        document.write("You're not using a supported browser");
    }
    else
    {
         document.write("You're using a supported browser");
    }
}
代码不起作用的原因是它不能在if语句中包含多个“and”逻辑运算符

因此,我必须通过嵌套if语句来达到预期效果,如:

function BrowserDetectMethod()
{
    if (BrowserDetect.browser != "Chrome")
    {
        if(BrowserDetect.browser != "Firefox")
        {
            if(BrowserDetect.browser != "Safari")
            {
                document.write("You're not using a supported Browser");
            }
            else
            {
                document.write("You're using a supported Browser");
            }
        }
        else
        {
            document.write("You are using a supported Browser");
        }
    }
    else
    {
        document.write("You are using a supported Browser");
    }
}

我从一开始就遇到的真正问题是,如果我在页面上有脚本,我的脚本就可以工作,但我希望它们在外部样式表中,如果我在外部脚本表中有脚本,脚本就不能工作。所以我发现了如何修复它,我将在下面列出我为使上面列出的一切完美工作所做的一切

对于那些想知道我是如何检测到浏览器的人,我从以下网站获得了它:。 这很好用,而且更容易用普通的javascript检测

首先,函数的名称应该不是BrowserDetect;我把它命名为BrowserDetectMethod,就像Gaby建议的那样

第二,如果要在外部样式表中包含函数,则需要在页面底部调用外部样式表。不像我想的那样在页首

第三:

我决定最好的浏览器嗅探方法是找到我想要联系的浏览器,而不是那些我没有联系的。(因为有很多浏览器,我只想联系三个)

但是,使用上述方法,我无法做到这一点,因为此代码不起作用:

function BrowserDetectMethod()
{
    if (BrowserDetect.browser != "Chrome" && BrowserDetect.browser && "Safari" ||BrowserDetect.browser && "Firefox" )
    {
        document.write("You're not using a supported browser");
    }
    else
    {
         document.write("You're using a supported browser");
    }
}
代码不起作用的原因是它不能在if语句中包含多个“and”逻辑运算符

因此,我必须通过嵌套if语句来达到预期效果,如:

function BrowserDetectMethod()
{
    if (BrowserDetect.browser != "Chrome")
    {
        if(BrowserDetect.browser != "Firefox")
        {
            if(BrowserDetect.browser != "Safari")
            {
                document.write("You're not using a supported Browser");
            }
            else
            {
                document.write("You're using a supported Browser");
            }
        }
        else
        {
            document.write("You are using a supported Browser");
        }
    }
    else
    {
        document.write("You are using a supported Browser");
    }
}

浏览器嗅探通常是个坏主意(除非它用于“嘿,使用更好的浏览器”样式的消息),是否会发生任何错误?什么输出到javascript控制台?浏览器嗅探通常是个坏主意(除非它用于“嘿,使用更好的浏览器”样式的消息),是否发生任何错误?javascript控制台的输出是什么?您可以使用多个逻辑运算符。你只是写得不对。。所以使用
var b=BrowserDetect.browser;如果(b!=“Safari”&&b!=“Firefox”&&b!=“Chrome”){//supported}或者{//notsupported}
您可以使用多个逻辑运算符。你只是写得不对。。所以使用
var b=BrowserDetect.browser;如果(b!=“Safari”&&b!=“Firefox”&&b!=“Chrome”){//supported}其他{//notsupported}