開發web應用程式有些時候挺麻煩的,多數的功能可不需要取得client端的資源,處理起來沒什麼問題,但如果今天要跟Outlook互動又或者要作Excel的資料匯入時,我們可能都會需要client端將網站加入信任網域,但如果要教導每個user如何將站台加入信任網域似乎又是件麻煩的事情
開發web應用程式有些時候挺麻煩的,多數的功能可不需要取得client端的資源,處理起來沒什麼問題,但如果今天要跟Outlook互動又或者要作Excel的資料匯入時,我們可能都會需要client端將網站加入信任網域,但如果要教導每個user如何將站台加入信任網域似乎又是件麻煩的事情,所以後來就請人寫了一段將目前網站加入信任網域的script,這段script是透過ActiveX的方式來進行,如果使用者端的IE安全性設定的太高就完全跳不出來囉,
01
var WshShell=new ActiveXObject("WScript.Shell");
02
03
//將抓到網址列的位址 加入信任網站
04
var objnav =navigator;
05
var OsVersion = objnav.appVersion;
06
var url =window.location.hostname; //抓網址列上的值
07
var urllength =url.length;
08
var domain1; //存放網址第一個.的前段
09
var domain2; //存放網址第一個.的後段
10
var num =url.indexOf("."); //找第一個"."
11
var rule= /^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/; //驗證是否為ip格式的正規表示式
12
OsVersion= OsVersion.substring(38,41); //抓OS的版本
13
//判斷系統版本
14
if (OsVersion =="5.0") //win2000
15
{
16
//判斷url為ip或domain
17
if(rule.test(url))
18
{
19
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Ranges\\Range100\\","");
20
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Ranges\\Range100\\http","2","REG_DWORD");
21
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Ranges\\Range100\\:Range",url);
22
}
23
else
24
{
25
domain1=url.substring(0,num);
26
domain2=url.substring((num+1),urllength);
27
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Domains\\"+domain2,"");
28
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Domains\\"+domain2+"\\"+domain1,"");
29
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Domains\\"+domain2+"\\"+domain1+"\\http","2","REG_DWORD");
30
}
31
}
32
if (OsVersion =="5.1") //winXP
33
{
34
//判斷url為ip或domain
35
if(rule.test(url))
36
{
37
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Ranges\\Range100\\","");
38
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Ranges\\Range100\\http","2","REG_DWORD");
39
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Ranges\\Range100\\:Range",url);
40
}
41
else
42
{
43
domain1=url.substring(0,num);
44
domain2=url.substring((num+1),urllength);
45
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Domains\\"+domain2,"");
46
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Domains\\"+domain2+"\\"+domain1,"");
47
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Domains\\"+domain2+"\\"+domain1+"\\http","2","REG_DWORD");
48
}
49
}
50
if (OsVersion =="5.2") //Win2003
51
{
52
//判斷url為ip或domain
53
if(rule.test(url))
54
{
55
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\EscRanges\\Range100\\","");
56
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\EscRanges\\Range100\\http","2","REG_DWORD");
57
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\EscRanges\\Range100\\:Range",url);
58
}
59
else
60
{
61
domain1=url.substring(0,num);
62
domain2=url.substring((num+1),urllength);
63
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\EscDomains\\"+domain2,"");
64
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\EscDomains\\"+domain2+"\\"+domain1,"");
65
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\EscDomains\\"+domain2+"\\"+domain1+"\\http","2","REG_DWORD");
66
}
67
}
68
if (OsVersion =="6.0") //vista
69
{
70
//判斷url為ip或domain
71
if(rule.test(url))
72
{
73
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Ranges\\Range100\\","");
74
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Ranges\\Range100\\http","2","REG_DWORD");
75
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Ranges\\Range100\\:Range",url);
76
}
77
else
78
{
79
domain1=url.substring(0,num);
80
domain2=url.substring((num+1),urllength);
81
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Domains\\"+domain2,"");
82
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Domains\\"+domain2+"\\"+domain1,"");
83
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Domains\\"+domain2+"\\"+domain1+"\\http","2","REG_DWORD");
84
}
85
}
var WshShell=new ActiveXObject("WScript.Shell"); 02
03
//將抓到網址列的位址 加入信任網站 04
var objnav =navigator; 05
var OsVersion = objnav.appVersion; 06
var url =window.location.hostname; //抓網址列上的值 07
var urllength =url.length; 08
var domain1; //存放網址第一個.的前段 09
var domain2; //存放網址第一個.的後段 10
var num =url.indexOf("."); //找第一個"." 11

var rule= /^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/; //驗證是否為ip格式的正規表示式 12
OsVersion= OsVersion.substring(38,41); //抓OS的版本 13
//判斷系統版本 14
if (OsVersion =="5.0") //win2000 15
{ 16
//判斷url為ip或domain 17
if(rule.test(url)) 18
{ 19
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Ranges\\Range100\\",""); 20
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Ranges\\Range100\\http","2","REG_DWORD"); 21
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Ranges\\Range100\\:Range",url); 22
} 23
else 24
{ 25
domain1=url.substring(0,num); 26
domain2=url.substring((num+1),urllength); 27
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Domains\\"+domain2,""); 28
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Domains\\"+domain2+"\\"+domain1,""); 29
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Domains\\"+domain2+"\\"+domain1+"\\http","2","REG_DWORD"); 30
} 31
} 32
if (OsVersion =="5.1") //winXP 33
{ 34
//判斷url為ip或domain 35
if(rule.test(url)) 36
{ 37
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Ranges\\Range100\\",""); 38
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Ranges\\Range100\\http","2","REG_DWORD"); 39
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Ranges\\Range100\\:Range",url); 40
} 41
else 42
{ 43
domain1=url.substring(0,num); 44
domain2=url.substring((num+1),urllength); 45
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Domains\\"+domain2,""); 46
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Domains\\"+domain2+"\\"+domain1,""); 47
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Domains\\"+domain2+"\\"+domain1+"\\http","2","REG_DWORD"); 48
} 49
} 50
if (OsVersion =="5.2") //Win2003 51
{ 52
//判斷url為ip或domain 53
if(rule.test(url)) 54
{ 55
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\EscRanges\\Range100\\",""); 56
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\EscRanges\\Range100\\http","2","REG_DWORD"); 57
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\EscRanges\\Range100\\:Range",url); 58
} 59
else 60
{ 61
domain1=url.substring(0,num); 62
domain2=url.substring((num+1),urllength); 63
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\EscDomains\\"+domain2,""); 64
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\EscDomains\\"+domain2+"\\"+domain1,""); 65
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\EscDomains\\"+domain2+"\\"+domain1+"\\http","2","REG_DWORD"); 66
} 67
} 68
if (OsVersion =="6.0") //vista 69
{ 70
//判斷url為ip或domain 71
if(rule.test(url)) 72
{ 73
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Ranges\\Range100\\",""); 74
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Ranges\\Range100\\http","2","REG_DWORD"); 75
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Ranges\\Range100\\:Range",url); 76
} 77
else 78
{ 79
domain1=url.substring(0,num); 80
domain2=url.substring((num+1),urllength); 81
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Domains\\"+domain2,""); 82
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Domains\\"+domain2+"\\"+domain1,""); 83
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Domains\\"+domain2+"\\"+domain1+"\\http","2","REG_DWORD"); 84
} 85
}這段script主要是透過讀取client端的registry來判斷是否有將目前的網址加入信任網域,後來又追加了一段讓新視窗啟動時不要new一個tab,而是以dialog的方式呈現:
01
//先取得IE的版本
02
var tIEVersion = getClientIEVersion();
03
//如果是IE7.0以上的話,把tab的設定改成1:在新視窗中啟動
04
if(tIEVersion>6)
05
{
06
WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\TabbedBrowsing\\PopupsUseNewWindow", 1, "REG_DWORD");
07
}
08
09
function getClientIEVersion()
10
{
11
var version = 999;
12
if (navigator.appVersion.indexOf("MSIE") != -1)
13
{
14
version = parseFloat(navigator.appVersion.split("MSIE")[1]);
15
}
16
return version;
17
}
//先取得IE的版本 02
var tIEVersion = getClientIEVersion(); 03
//如果是IE7.0以上的話,把tab的設定改成1:在新視窗中啟動 04
if(tIEVersion>6) 05
{ 06
WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\TabbedBrowsing\\PopupsUseNewWindow", 1, "REG_DWORD"); 07
} 08
09
function getClientIEVersion() 10
{ 11
var version = 999; 12
if (navigator.appVersion.indexOf("MSIE") != -1) 13
{ 14
version = parseFloat(navigator.appVersion.split("MSIE")[1]); 15
} 16
return version; 17
}這算是一個方便的小功能,避免還要寫user guide去教導使用者,請他按下某個按鈕讓它自動設定就對了。
![]() |
游舒帆 (gipi) 探索原力Co-founder,曾任TutorABC協理與鼎新電腦總監,並曾獲選兩屆微軟最有價值專家 ( MVP ),離開職場後創辦探索原力,致力於協助青少年培養面對未來的能力。認為教育與組織育才其實息息相關,都是在為未來儲備能量,2018年起成立為期一年的專題課程《職涯躍升的關鍵24堂課》,為培養台灣未來的領袖而努力。 |
var rule= /^[0-9]

