開發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
}

02

03

04

05

06

07

08

09

10

11


12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

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
}

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

這算是一個方便的小功能,避免還要寫user guide去教導使用者,請他按下某個按鈕讓它自動設定就對了。
![]() |
游舒帆 (gipi) 探索原力Co-founder,曾任TutorABC協理與鼎新電腦總監,並曾獲選兩屆微軟最有價值專家 ( MVP ),離開職場後創辦探索原力,致力於協助青少年培養面對未來的能力。認為教育與組織育才其實息息相關,都是在為未來儲備能量,2018年起成立為期一年的專題課程《職涯躍升的關鍵24堂課》,為培養台灣未來的領袖而努力。 |