有没有办法检查哪个JavaScript版本的浏览器支持?

时间:2013-02-16 23:21:28

标签: javascript browser

我正在使用JavaScript的一些新功能,例如Array.forEach(v.1.6)。

据我所知,在实时代码中我们应该使用特征检测,如下所述: To tell Javascript version of your browser 所以,基本上是这样的:

typeof Array.prototype.forEach == 'function'

但是,是否有某种方式(例如网站)显示不同浏览器支持哪个版本的JavaScript?我基本上想检查一下给定的版本是否已被浏览器广泛采用。

this这样的JavaScript支持就​​像我正在寻找的那样。

2 个答案:

答案 0 :(得分:3)

不,不是真的。您应该进行功能测试,而不是浏览器支持哪种版本的JS,以支持许多新的HTML5功能。

对于ECMAScript 5的一些新功能,您可以创建或使用模拟这些功能的第三方填充程序,并且不会在旧版浏览器中导致错误。并非所有功能都适用于ECMAScript 5,但很多功能都可以。

https://github.com/kriskowal/es5-shim

答案 1 :(得分:1)

我同意其他评论,即您不应该检查javascript版本,以确保所使用的功能正常运行。

推荐:

不推荐:

但是,回答问题。 您可以在此处查看浏览器支持的javascript版本。

Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim trv As New MyTreeView
        trv.Nodes.Add("Suppliers")
        trv.Nodes(0).Nodes.Add("Sup 1")
        trv.Nodes(0).Nodes.Add("Sup 2")
        trv.Nodes(0).Nodes.Add("Sup 3")
        trv.Nodes(0).Nodes.Add("Sup 4")
        trv.Nodes(0).Nodes.Add("Sup 5")
        Controls.Add(trv)
    End Sub
End Class

'Class Starts Here
Public Class MyTreeView
    Inherits TreeView
    WithEvents myImage As PictureBox
    Dim activeItem As TreeNode    'Variable to store active TreeNode
    Public Sub New()
        MyBase.New()              'Call the base class constructor
        'And set some values
        Height = 300
        Width = 300
        Location = New Point(50, 50)
        DrawMode = TreeViewDrawMode.OwnerDrawText       'Very neccesary
        AddHandler DrawNode, AddressOf MyTreeViewDrawNode   
        'Add event handlers
        AddHandler AfterCollapse, AddressOf MyTreeViewCollapsed
        'Set HotTracking event to true to allow for MouseHover
        HotTracking = True
        ImageList = new ImageList
        ImageList.Images.Add(My.Resources.FolderImage)
        ImageIndex = 0

        Font = New Font(Font.FontFamily, 10)
        'Initialize picturebox
        myImage = New PictureBox() With
        {
            .Image = My.Resources.editPencilImage,
            .SizeMode = PictureBoxSizeMode.Zoom,
            .Size = New Size(10, 10),
            .Visible = False
        }
        Controls.Add(myImage)
    End Sub

    Private Sub MyTreeViewCollapsed(sender As Object, e As TreeViewEventArgs)
        myImage.Visible = False
    End Sub

    Sub ImageClicked(sender As Object, e As EventArgs) Handles myImage.Click
        If (Not activeItem Is Nothing) Then
            MessageBox.Show("Clicked Item - " & activeItem.Text)
        End If
    End Sub

    Private Sub MyTreeViewDrawNode(sender As Object, e As DrawTreeNodeEventArgs)
        e.DrawDefault = True
        If (e.State = TreeNodeStates.Hot) Then
            myImage.Visible = True
            activeItem = e.Node
            Dim tmpSize = TextRenderer.MeasureText(e.Node.Text, Font)
            myImage.Location = New Point(e.Node.Bounds.Location.X + tmpSize.Width, e.Node.Bounds.Location.Y)
        End If
    End Sub
End Class