Internet Explorer 安全區域注冊表項說明中有一部分提到的如下的內容,那麼我們就可以通過修改注冊表中的選項來達到我們預期的要求。
/// <summary>
/// Get Current Script state of IE.
/// </summary>
/// <param name="regPath"></param>
/// <returns>true ---> allow Script.</returns>
public static bool GetIECurrentScriptState(string regPath)
{
bool ret = false;
RegistryKey regSubkey = null;
regSubkey = Registry.CurrentUser.OpenSubKey(regPath, true);
if (regSubkey.GetValue("1400").ToString() == "0")
{
ret = true;
}
if ((int)regSubkey.GetValue("1400") == 3)
{
ret = false;
}
return ret;
}
以下是對IE中注冊表的改變:
/// <summary>
/// Disable IE Scripts.
/// </summary>
public void DisableIEScripts()
{
RegistryKey regSubKey = null;
regSubKey = Registry.CurrentUser.OpenSubKey(regPath, true);
regSubKey.SetValue("1400", 0x3);
}
起初我以為如此修改注冊表的信息也會帶來其他浏覽器的改變,但是結果並不然。
Firefox
當我企圖在FF裡面尋找相關注冊表修改的時候,並沒有找到相關選項,於是換一種思路。最終在當前用戶的Firefox文件中,找到了一個叫做pref.JS的文件。裡面有也許有一行代碼,user_pref("Javascript.enabled", false); 。這就代表了Javascript被禁止了。如果為true或者沒有的話,那麼都代表了允許狀態。而該文件的文件夾9acap8nw.default如此帶有default字樣的,也是隨著不同的機器安裝不同的客戶端所不同的。而它的前面的目錄大概的C:\Documents and Settings\。。。\Application Data\Mozilla\Firefox\Profiles如此。不過會有這樣的文件夾也只是在Windows server2003 和XP中有如此的目錄,具體問題還是需要具體分析的。
/// <summary>
/// Delete one line which contains the "JavaScript.enabled.
/// </summary>
/// <param name="filePath">the path of JS file.</param>
public static void DisableFFJaveScript(string filePath)
{
StringBuilder sb = new StringBuilder();
using (FileStream aStream = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
StreamReader aReader = new StreamReader(aStream, Encoding.UTF8);
StreamWriter aWriter = new StreamWriter(aStream, Encoding.UTF8);
aReader.BaseStream.Seek(0, SeekOrigin.Begin);
string streamLine = aReader.ReadLine();
bool isJSDisabled = false;
bool isJSFalse = false;
while (streamLine != null)
{
if (streamLine.Contains("Javascript.enable") && streamLine.Contains("false"))
{
isJSFalse = true;
}
if (streamLine.Contains("Javascript.enable") && streamLine.Contains("true"))
{
streamLine = streamLine.Replace("true", "false");
isJSDisabled = true;
}
sb.Append(streamLine + "\r\n");
streamLine = aReader.ReadLine();
}
if (!isJSDisabled && !isJSFalse)
sb.Append("user_pref(" + "\"Javascript.enabled\"" + "," + " false);");
aReader.Close();
}
File.Delete(filePath);
AddToFile(filePath, sb.ToString());
}