If you develop a custom control and want to give the option to output client-side javascript code, you’ll likely have a EnableClientScript that allows the developer to specify whether the js code will be generated or not. However, before generating and outputting the js, you should also check whether it is supported by the target client browser. The following function takes in input a Boolean value (that will be the value of your EnableClientScript property), and returns the same value only if javascript code is supported, otherwise it returns False.
' Return True if client script support is requested and possibleFunction IsClientScriptEnabled(Byval value as Boolean) As Boolean ' we need a Try block because accessing the Browser ' property at design time may throw Try ' Return False if DOM version is too low. If Page.Request.Browser.W3CDomVersion.Major < 1 Then Return False End If ' Return False if EcmaScript version is too low. If Page.Request.Browser.EcmaScriptVersion.CompareTo(New Version(1, _ 2)) < 0 Then Return False End If ' if all tests passed, return the input value IsClientScriptEnabled = value Catch ' return False if any error occurs Return False End TryEnd Function
Within the method where you generate the control’s output code (for example from the overridden Render method), instead of doing something like this:
If EnableClientScript Then ' generate and output javascript codeEnd If
You’ll do:
If IsClientScriptEnabled(EnableClientScript) Then ' generate and output javascript codeEnd If
Note: This code is taken from Francesco Balena’s Programming Microsoft Visual Basic .NET – MS Press 2002, ISBN 0735613753.