我一直在寻找这个问题的答案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")
}
}
正如您所看到的,它是完全相同的代码,当它在网页的主体中时起作用。但是当它被放入一个函数并调用加载时,它就不起作用了。为什么呢?
答案 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");
}
}