为什么此代码没有't提醒浏览器类型
Why this code doesn't alert the browser type?
你能告诉我写这段代码缺少什么吗?
<button onclick="getBrowserName()">You Browser Name?</button>
<script>
function getBrowserName()
{
//Uses external interface to reach out to browser and grab browser useragent info.
var browserAgent:String = ExternalInterface.call("function getBrowser(){return navigator.userAgent;}");
//Determines brand of browser using a find index. If not found indexOf returns (-1).
if(browserAgent != null && browserAgent.indexOf("Firefox")>= 0)
{
alert("Firefox");
}
else if(browserAgent != null && browserAgent.indexOf("Safari")>= 0)
{
alert("Safari");
}
else if(browserAgent != null && browserAgent.indexOf("MSIE")>= 0)
{
alert("IE");
}
else if(browserAgent != null && browserAgent.indexOf("Opera")>= 0)
{
alert("Opera");
}
else
{
alert("Undefined");
}
return 0;
}
</script>
这里有一些错误。
var browserAgent: String
:看起来您使用的是actionscript语法,但JS使用动态类型,所以var
就是您所需要的。不需要显式定义变量的数据类型,如果您试图在JS中以这种方式进行定义,将会出现语法错误ExternalInterface.call
:这是ActionScript的另一个遗留问题:你不需要这个。事实上,它根本不起作用,因为标准JS中没有ExternalInterface
类- 您的
getBrowser()
功能是不必要的。您将browserAgent
设置为等于从ExternalInterface
调用函数的结果,但您可以直接执行此操作:var browserAgent = window.navigator.userAgent
当我修复这些东西时,效果很好。
下次,我建议您检查浏览器控制台,因为如果什么都没发生,那里出现的错误将帮助您解决问题,十有八九。
演示
如果更换
var browserAgent:String = ExternalInterface.call("function getBrowser(){return navigator.userAgent;}");
这行:
var browserAgent = window.navigator.userAgent;
那么你的剧本对我来说很好。
但是,用于测试发动机的标准并不精确。看看这个:http://www.useragentstring.com/pages/useragentstring.php
有许多浏览器会告诉你Firefox,即使它们是另一个品牌。但它们是基于彼此的,或者它们也使用其他浏览器中内置的特定引擎。
如果我在Chrome浏览器中使用你的脚本,它会显示"Safari"而不是"未定义"。
关于标点符号:我知道在Javascript中只有两个地方可以使用双点:
- 条件运算符CCD_ 9
- 对象表示法中的属性值赋值:
{ name : value }
您包含:String = ExternalInterface...
的代码行让我想起了ActionScript(?(。
我不太确定下面的代码应该做什么。你确定它是正确的吗?
var browserAgent:String =
ExternalInterface.call("function getBrowser(){return navigator.userAgent;}");
我希望这个代码看起来像这样:
var browserAgent = navigator.userAgent;
以下是此更改的示例。http://jsbin.com/lukasere/1/edit
相关文章:
- 我如何使HTML5<输入类型=月份>以在所有浏览器上工作
- 灯箱类型的东西,使图像成为浏览器高度的百分比
- 如何javascript验证<输入类型=文件多个>如果浏览器不支持多个
- 是否可以使用JS打开具有所需内容类型的浏览器窗口
- 如何简单地用JQuery或JavaScript检测浏览器类型
- 浏览器在<输入类型=“;文件“>
- 在谷歌浏览器中获取正确的类型名称
- 由 webpack 构建的 react(es6) 在浏览器中有一个未捕获的类型错误
- 浏览器类型错误“fsGetSearchListener 不是函数” 在 Firefox 上
- Javascript检测选项标签文本缩进功能或检测浏览器类型作为备用
- 是否有javascript框架来运行基于浏览器类型的单元测试
- 检测浏览器类型并应用相关样式
- 如何检测浏览器类型在HTML5或Javascript播放mp3,而不是在Safari/IE浏览器的webm
- 为什么此代码没有't提醒浏览器类型
- Jquery检查用户浏览器类型
- 在iPhone / iPad上检测实际浏览器类型
- 在AngularJS中检测浏览器类型和版本,如果不支持则显示一条消息
- 根据浏览器类型加载htm标记
- 检查函数中的浏览器类型在 Javascript 中不起作用
- 限制用户的浏览器类型