bla*_*k3r 9 .net c# windows webbrowser-control winforms
我有一个应用程序,它将HTML写入.NET winforms应用程序中的WebBrowser控件.
如果Internet设置禁用了Javascript(或Active Scripting),我想以某种方式以编程方式检测.
我猜你需要使用类似WMI的东西来查询IE安全设置.
编辑#1:重要的是我知道如果在显示HTML之前启用了javascript,那么修改DOM以显示警告的解决方案或者在我的特定情况下使用标签不适用.在我的情况下,如果javascript不可用,我将在本机RichTextBox中显示内容,而且我还想报告JS是否已启用回服务器应用程序,因此我可以告诉管理员发送5%或75%的警报用户是否启用了JS.
感谢@ Kickaha的建议.这是一个简单的方法,它检查注册表以查看它是否已设置.可能在某些情况下,这可能会引发异常,所以一定要处理它们.
const string DWORD_FOR_ACTIVE_SCRIPTING = "1400";
const string VALUE_FOR_DISABLED = "3";
const string VALUE_FOR_ENABLED = "0";
public static bool IsJavascriptEnabled( )
{
bool retVal = true;
//get the registry key for Zone 3(Internet Zone)
Microsoft.Win32.RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3", true);
if (key != null)
{
Object value = key.GetValue(DWORD_FOR_ACTIVE_SCRIPTING, VALUE_FOR_ENABLED);
if( value.ToString().Equals(VALUE_FOR_DISABLED) )
{
retVal = false;
}
}
return retVal;
}
Run Code Online (Sandbox Code Playgroud)
注意:为了保持此代码示例的简短(并且因为我只关心Internet区域) - 此方法仅检查Internet区域.您可以修改OpenSubKey行末尾的3来更改区域.