如何调用函数

时间:2011-09-19 08:27:00

标签: javascript function call external

我一直在寻找这个问题的答案4个小时,但没有成功。

好吧,我正在尝试执行的功能可以在用户使用某个浏览器时执行某些操作。

我有用于在页面的head部分检测浏览器,版本和操作系统的脚本,它可以工作。

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

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

但如果我将代码放在外部脚本表中,我该如何使用它? 我尝试将它放在一个函数中,并使用此代码在加载时调用该函数。

<body onload="BrowserDetect();">

请注意,我的页面的head部分会调用外部脚本表。

这是外部脚本表中的代码。

function BrowserDetect()
{
    if (BrowserDetect.browser == "Chrome")
    {
        document.write("You're using Chrome")
    }
    else
    {
        document.write("You're not using Chrome")
    }
}

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

3 个答案:

答案 0 :(得分:3)

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

尝试

function BrowserDetectMethod()
{
    if (BrowserDetect.browser == "Chrome")
    {
        document.write("You're using Chrome")
    }
    else
    {
        document.write("You're not using Chrome")
    }
}

并用

调用它
<body onload="BrowserDetectMethod();">

答案 1 :(得分:1)

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

答案 2 :(得分:0)

我从一开始就遇到的真正问题是,如果我在页面上使用它们,我的脚本就可以工作了,但我想在外部样式表中使用它们,如果我在外部脚本表中使用它们,则脚本没有工作。所以我发现了如何修复它,我将在下面列出我所做的一切,使上面列出的所有内容都能正常工作。

对于那些想知道我是如何检测到浏览器的人,我从这个网站获得了它:http://www.quirksmode.org/js/detect.html。 这很好用使用普通的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语句中不能包含多个“和”逻辑运算符。

所以我必须通过嵌套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");
    }
}