Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 嗅探Firefox4及更高版本的方法_Javascript_Firefox4_Browser Detection - Fatal编程技术网

Javascript 嗅探Firefox4及更高版本的方法

Javascript 嗅探Firefox4及更高版本的方法,javascript,firefox4,browser-detection,Javascript,Firefox4,Browser Detection,我正在编写一个JavaScript库,它必须检查Firefox4或更高版本。相信我,我需要 我计划使用以下嗅探代码: if ('MozAppearance' in document.documentElement.style) { //We have Mozilla if (!!window.FormData) { //We have Firefox4+ } } 我觉得还可以,因为在我看来,似乎不太可能有人会添加一个全局FormData方法 假设

我正在编写一个JavaScript库,它必须检查Firefox4或更高版本。相信我,我需要

我计划使用以下嗅探代码:

if ('MozAppearance' in document.documentElement.style) {

    //We have Mozilla

    if (!!window.FormData) {

        //We have Firefox4+

    }
}
我觉得还可以,因为在我看来,似乎不太可能有人会添加一个全局FormData方法

假设我对与任何浏览器嗅探方法相关的常见风险感到满意,那么您能看到这有什么问题吗

Firefox中window.FormData的文档如下:


谢谢

这取决于您决定这是否是合理的特征检测。如果您认为测试FormData的存在就足够了;那就这样吧

您还可以增加检查的功能。您还可以查找window.URL,以及:


所以现在有人宣布两者的几率更低了。如果您足够信任您的用户而不更改他们,您也可以让用户代理参与进来。

window.history.pushState是另一个您可以检查的。 我想我们可以用出现在FF4+中但不是FF3.x中的功能整天这样做

假设我对与任何 浏览器嗅探方法,你能看到这有什么问题吗

一旦他们删除前缀,它就会中断。 所有这些都证明了这一事实。
所以请记住,您必须使用| |不断添加最新的Mozilla扩展。

但是为什么需要检查Firefox 4或更高版本?这是可能的,但不太可能,你没有考虑一个更好的方法。我只是想知道为什么FF4?!我正在编写一个带有Window.FormData方法的浏览器…只是为了解决这个问题。我想我不会把它命名为FF4。很吸引人,不是吗?为什么不重要。这无关紧要,但既然我知道你们不能休息,直到你们知道为什么…在这里。该库支持的插件对象需要在Mac上的FF4+中进行DOM操作,因为该插件所依赖的FF代码发生了变化。这是真实世界的肮脏,但事实就是这样。如果你从来没有闻过,你认为“一定有更好的方法”,让我知道。我想我们都同意,上面的方法比用navigator.userAgent测试regexp要好,对吗?我喜欢你结合测试的方法,以降低野外误报的机会。谢谢-moz外观是XUL平台的一部分,用于使用基于操作系统的本机控件呈现元素。这极不可能被标准化;因此前缀将始终存在。
if (!!window.FormData && !!window.URL) {

    //We have Firefox4+

}