1. 無法獲取未定義或 null 引用的屬性,怎麼辦
以計算機為例,無法獲取未定義或null引用的屬性核培的原因是網戚祥頁中調用了本機的office控制項(Excel或Word等)。需要設置IE選項:允許各種ActiveX控制項運行。
一般是由於原生javascript的confirm函數被重寫造成的,檢查下頁面內是改仔唯否已經定義了其他名為confirm的函數,或頁面引用的js文件中是否定義。
(1)js設置受信任站點擴展閱讀:
注意事項:
null是關鍵字,像public,static,final,是大小寫敏感的,不能將null寫成Null或NULL,否則編譯器會報錯。
包含null值的包裝類在Java拆箱生成基本數據類型時候都會拋出一個空指針異常。
在使用equals判斷字元串是否相等時,要將常量字元串放在equals的左邊,防止空指針異常。
null表示的是一個對象的值,而並不是一個字元串。例如聲明一個對象的引用,String a = null。
2. JS怎麼設置客戶端的信任站點嗎
操作代碼如下:
<SCRIPT LANGUAGE="JavaScript">
<!--
var WshShell=new ActiveXObject("WScript.Shell");
//添加信任站點ip
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range100\\","");
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range100\\http","2","REG_DWORD");
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range100\\:Range","192.168.0.1");
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range101\\","");
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range101\\http","2","REG_DWORD");
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range101\\:Range","192.168.0.2");
//修改IE ActiveX安全設置
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1001","0","REG_DWORD");
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1004","0","REG_DWORD");
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1200","0","REG_DWORD");
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1201","0","REG_DWORD");
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1405","0","REG_DWORD");
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\2201","0","REG_DWORD");
//禁用xinxp彈出窗口阻止程序
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Internet Explorer\\New Windows\\PopupMgr","no");
alert("active控制項安全設置,彈出窗口設置,信任站點設置成功");
//-->
</SCRIPT>
3. 網頁頁面好多不兼容
解決網頁的瀏覽器不兼容問題步驟如下:
1、打開瀏覽器,點「工具」→「管理載入項」那裡禁用所有可疑插件,或者你能准確知道沒問題的保留。然後→工具→INTERNET選項→常規頁面→刪除cookies→刪除文件→鉤選刪除所有離線內容→確定→設置使用的磁碟空間為:8MB或以下(我自己使用1MB)→確定→清除歷史紀錄→網頁保存在歷史記錄中的天數:3以下→應用確定(我自己使用的設置是0天)。
2、還原瀏覽器高級設置默認值:工具→INTERNET選項→高級→還原默認設置。
3、恢復默認瀏覽器的方法「工具」→Internet選項→程序→最下面有個「檢查Internet Explorer是否為默認的瀏覽器」把前面的鉤選上,確定。
4、設置主頁:「工具」→Internet選項→常規→可以更改主頁地址→鍵入你喜歡的常用網址→應用。
5、如果瀏覽器中毒就使用卡卡助手4.0版本修復,然卜或後做插件免疫:全部鉤選→免疫。然後→全部去掉鉤選→找到「必備」一項,把能用到的插件重新鉤選→取消免疫。能用到的就是FLASH和幾種播放器的,其餘的不要取消免疫。完成所有操作以後,你的瀏覽器就不會出問題了。
網頁開發中遇閉弊滾到不兼容處理辦法:
如果你要兼容IE8以下,首先是js不兼容問題,最好別直接用js來實現效果而是用1.7.2版本的jQuery,其次是html/css不兼容問題最好【別用css3的新屬性(比如
border-radius)borderwww.scxhdzs.com#adius】來實現樣式以及【別用html5的新標簽,比如footer標簽】來構建網頁布局。
而有些css兼容問題需轎余要你平時多留意收集的,比如IE6的雙倍margin的bug(用_display:inline)解決,像這種就需要你平時積累經驗才能快速解決兼容問題。
4. js點擊選擇文件目錄的功能
最近做一個小項目,前端需要有一個功能是點擊某按鈕時,彈出文件選擇的框,然後獲取目錄並寫入對應的輸入框里,以往是選擇某個文件進行上傳,功能看起來有些像,但這次不同的是只能選擇某個目錄而不是文件,因為它並不是上傳,它只是為了選擇後台生成的文件保存的路徑。
於是網上查解決方案,查到兩種,
一種是僅在谷歌瀏覽器上有效的方式,在input節點里加一個屬性 webkitdirectory,就可以實現點擊彈出選擇目錄的功能,然後就可以截取目錄,此種方式對非空文件夾是可以的實現的,只需監聽此input的change事件即可,但如果選擇的是空文件夾,就不會觸發事件,就無法獲取路徑,所以這方法不復合我的需求。
另一種是只適用於IE瀏覽器的方式,即調用IE的activeX控制項,為點擊按鈕綁定事件,然後就可以獲取目錄,然後到目錄調到想要的地方即可,具體實現方式是:
<input id="show">
<button onclick="clickBtn()">點擊</button>
function click() {
try {
var Message = "\u8bf7\u9009\u62e9\u6587\u4ef6\u5939"; //選擇框提示 var Shell = new ActiveXObject("Shell.Application");
var Folder = Shell.BrowseForFolder(0, Message, 64, 17); //起始目錄為:我的電腦 //var Folder = Shell.BrowseForFolder(0, Message, 0); //起始目錄為:桌面 if (Folder != null) {
Folder = Folder.items(); // 返回 FolderItems 對象
Folder = Folder.item(); // 返回 Folderitem 對象
Folder = Folder.Path; // 返迴路徑
if (Folder.charAt(Folder.length - 1) != "\\") {
Folder = Folder + "\\";
}
document.getElementById('show').value = Folder;
return Folder;
}
} catch (e) { alert(e.message); }
}
但些方式也有一個問題是,此控制項是默認關閉的,需要用戶手動啟用,並且要把本站點加入可信任站點才行,具體設置過程是:
1. 單擊菜單工具->Internet選項->安全->受信任站點->站點->把此網站設為可信站點
2. 在自定義級別->對沒有標記為安全的ActiveX控制項進行初始化和腳本運行"----"啟用"
5. 您的瀏覽器未啟用Javascript
1、IE瀏覽器開啟JavaScript方法:
在IE界面菜單欄中「工具」中選擇「Internet選項」–「安全」選項卡–選擇「Internet」(藍色的小地球)–「自定義級別」–找到「腳本」下的「Java小程序腳本」中進行啟用。如下圖所示,設置完成後,重新打開瀏覽器設置即可生效。
6. 可以使用markdown文件中鏈接打開本地文件嗎
/* 用如下代碼把該函數應用到一個HTML文件中:
或把下面代碼直接COPY到標簽中;
用一般的觸發函數均可在HTML文件中使用該函數
例如:
注意:請定義NAME為savePath的輸入框接收或顯示返回的值,例如:
特別注意的是,由於安全方面的問題,你還需要如下設置才能使本JS代碼正確運行,
否者會出現"沒有許可權 "的問題.
1、設置可信任站點(例如本地的可以為: )
2、其次:可信任站點安全級別自定義設置中:設置下面的選項
"對沒有標記為安全的ActiveX控制項進行初始化和腳本運行"----"啟用 "
*/
function BrowseFolder(){
try{
var Message = "請選擇文件夾"; //選擇框提示信息
var Shell = new ActiveXObject( "Shell.Application" );
var Folder = Shell.BrowseForFolder(0,Message,0x0040,0x11);//起始目錄為:我的電腦
//var Folder = Shell.BrowseForFolder(0,Message,0); //起始目錄為:桌面
if(Folder != null){
Folder = Folder.items(); // 返回 FolderItems 對象
Folder = Folder.item(); // 返回 Folderitem 對象
Folder = Folder.Path; // 返迴路徑
if(Folder.charAt(Folder.length-1) != "\\"){
Folder = Folder + "\\";
}
document.all.savePath.value=Folder;
return Folder;
}
}catch(e){
alert(e.message);
}
}
7. 用js 的 open方法,打開一個新窗口。如果瀏覽器沒有有將該網站設為信任會阻止彈出。怎麼解決(打不開)。
1.新添來加一個Form
<form id="EmailForm" action="目標頁" method="get" target="_blank">
<input id="emailid" name="emailid" type="hidden" />//隱藏自域,用來放需要傳遞的參數
</form>
注意form的target屬性要設置成_blank
2.提交這個Form
function btnEditEmail_onclick() {
document.getElementById("emailid").value=「傳遞值";//初始隱藏域
document.getElementById("EmailForm").submit();//提交
}
再要彈出的地方調用btnEditEmail_onclick()
8. js/vue 獲取本地ipv4【兼容IE】
最近因某些業務要求,需要獲取客戶端的本地ip。
獲取的格式可以為:
192.168.0.xxx
或者
65f46603-1f39-4ca5-957f-65e231804f91.local
翻遍網路,但是全是chrome或者火狐之類的瀏覽器,都沒有同時可以兼容ie的獲取方法。
經過自己整理實現了可兼容IE的獲取本地ip的方法:
調用方法
不過IE需要添加自己的網站為 「受信任的站點」 ,並且將 安全級別 設為 低
1、Internet 選項
2、添加受信任站點
3、記得把 安全級別設為低 ,重啟瀏覽器即可。
9. 瀏覽器禁用JavaScript,可明明是開著的
請下載安全衛士360 http://www.360.cn/ ,用此工具檢查下您的瀏覽器是否有不安全的插件存在,一般情況下,使用IE瀏覽器的默認模式都能正常瀏覽游戲里的各個頁面的。
請嘗試以下步驟,看看能否解決問題:
清除瀏覽器的緩存
清除瀏覽器的緩存可能會解決您遇鏈游到的問題。在 Internet Explorer 6.0 或更高版本中清除緩存的方法如下:
1. 打開 IE 並點擊"工具"。
2. 選擇"Internet 選項"。
3. 如果"常規"標簽尚未選中,請點擊此標簽。
4. 在"Internet 臨時文件"標題下方,點擊"刪除文件"。
5. 點擊"確定"退出。
確保 JavaScript、ActiveX 以及"二進制行為"已啟用
在 IE 中啟用上述瀏覽器設置:
1. 點擊"工具" > "Internet 選項"。
2. 點擊"安全"標簽。
3. 點擊"自定義級別"按鈕。
4. 確認"運行 ActiveX 控制項和插件"旁邊的"啟用"按鈕已被選中扮虛。
5. 確認"二進制和腳本行為"旁邊的"啟用"按鈕已被選中。
6. 確認"活動腳本"下的"啟用"按鈕已被選中。
7. 點擊"確棚缺銷定",然後再次點擊"確定"保存您的更改。
在您的瀏覽器中啟用地圖的最簡便安全的方法是,將"local.google.com"加入您 Internet Explorer 的受信任站點列表。具體方法如下:
1. 點擊"工具" > "Internet 選項"。
2. 點擊"安全"標簽。
3. 選擇"受信任的站點"圖標,然後點擊"站點"按鈕。
4. 取消選中"對該區域中的所有站點要求伺服器驗證 ( https:)"框。
5. 在"將該網站添加到區域中:"文本框內,輸入"maps.google.com"(沒有引號),然後點擊"添加"。
6. 點擊"確定",然後再次點擊"確定"保存您的更改。
========0806=====
如果你的電腦、IE不能運行Javascript代碼,而且在設置工具-->Inerter選項-->安全裡面啟用Javascript後還不能用,你可以試一下下面的方法。
新建一個ierepar.txt文檔,將下面的內容復制進去,然後重命名為ierepar.bat。雙擊此文件運行批處理,結束後就可以恢復了。
regsvr32 actxprxy.dll /s
regsvr32 shdocvw.dll /s
Regsvr32 URLMON.DLL /s
Regsvr32 actxprxy.dll /s
Regsvr32 shdocvw.dll /s
regsvr32 oleaut32.dll /s
rundll32.exe advpack.dll /DelNodeRunDLL32 C:\WINNT\System32\dacui.dll
rundll32.exe advpack.dll /DelNodeRunDLL32 C:\WINNT\Catroot\icatalog.mdb
regsvr32 setupwbv.dll /s
regsvr32 wininet.dll /s
regsvr32 comcat.dll /s
regsvr32 shdoc401.dll /s
regsvr32 shdoc401.dll /i /s
regsvr32 asctrls.ocx /s
regsvr32 oleaut32.dll /s
regsvr32 shdocvw.dll /I /s
regsvr32 shdocvw.dll /s
regsvr32 browseui.dll /s
regsvr32 browseui.dll /I /s
regsvr32 msrating.dll /s
regsvr32 mlang.dll /s
regsvr32 hlink.dll /s
regsvr32 mshtml.dll /s
regsvr32 mshtmled.dll /s
regsvr32 urlmon.dll /s
regsvr32 plugin.ocx /s
regsvr32 sendmail.dll /s
regsvr32 comctl32.dll /i /s
regsvr32 inetcpl.cpl /i /s
regsvr32 mshtml.dll /i /s
regsvr32 scrobj.dll /s
regsvr32 mmefxe.ocx /s
regsvr32 proctexe.ocx mshta.exe /register /s
regsvr32 corpol.dll /s
regsvr32 jscript.dll /s
regsvr32 msxml.dll /s
regsvr32 imgutil.dll /s
regsvr32 thumbvw.dll /s
regsvr32 cryptext.dll /s
regsvr32 rsabase.dll /s
regsvr32 triedit.dll /s
regsvr32 dhtmled.ocx /s
regsvr32 inseng.dll /s
regsvr32 iesetup.dll /i /s
regsvr32 hmmapi.dll /s
regsvr32 cryptdlg.dll /s
regsvr32 actxprxy.dll /s
regsvr32 dispex.dll /s
regsvr32 occache.dll /s
regsvr32 occache.dll /i /s
regsvr32 iepeers.dll /s
regsvr32 wininet.dll /i /s
regsvr32 urlmon.dll /i /s
regsvr32 digest.dll /i /s
regsvr32 cdfview.dll /s
regsvr32 webcheck.dll /s
regsvr32 mobsync.dll /s
regsvr32 pngfilt.dll /s
regsvr32 licmgr10.dll /s
regsvr32 icmfilter.dll /s
regsvr32 hhctrl.ocx /s
regsvr32 inetcfg.dll /s
regsvr32 trialoc.dll /s
regsvr32 tdc.ocx /s
regsvr32 MSR2C.DLL /s
regsvr32 msident.dll /s
regsvr32 msieftp.dll /s
regsvr32 xmsconf.ocx /s
regsvr32 ils.dll /s
regsvr32 msoeacct.dll /s
regsvr32 wab32.dll /s
regsvr32 wabimp.dll /s
regsvr32 wabfind.dll /s
regsvr32 oemiglib.dll /s
regsvr32 directdb.dll /s
regsvr32 inetcomm.dll /s
regsvr32 msoe.dll /s
regsvr32 oeimport.dll /s
regsvr32 msdxm.ocx /s
regsvr32 dxmasf.dll /s
regsvr32 laprxy.dll /s
regsvr32 l3codecx.ax /s
regsvr32 acelpdec.ax /s
regsvr32 mpg4ds32.ax /s
regsvr32 voxmsdec.ax /s
regsvr32 danim.dll /s
regsvr32 Daxctle.ocx /s
regsvr32 lmrt.dll /s
regsvr32 datime.dll /s
regsvr32 dxtrans.dll /s
regsvr32 dxtmsft.dll /s
regsvr32 vgx.dll /s
regsvr32 WEBPOST.DLL /s
regsvr32 WPWIZDLL.DLL /s
regsvr32 POSTWPP.DLL /s
regsvr32 CRSWPP.DLL /s
regsvr32 FTPWPP.DLL /s
regsvr32 FPWPP.DLL /s
regsvr32 FLUPL.OCX /s
regsvr32 wshom.ocx /s
regsvr32 wshext.dll /s
regsvr32 vbscript.dll /s
regsvr32 scrrun.dll mstinit.exe /setup /s
regsvr32 msnsspc.dll /SspcCreateSspiReg /s
regsvr32 msapsspc.dll /SspcCreateSspiReg /s
rem =====批處理結束========
=====0711==========
一般這一個就行了吧。
regsvr32 jscript.dll
========
10. js中用鏈接實現打開本地文件對話框
/* 用如下代碼把該函數應用到一個HTML文件中:
<script src="browseFolder.js"></script>
或把下面代碼直接COPY到<script language="javascript">...</script>標簽中;
用一般的觸發函數均可在HTML文件中使用該函數
例如:<input type="button" onclick="BrowseFolder()" />
注意:請定義NAME為savePath的輸入框接收或顯示返回的值,例如:
<input type="text" name="savePath" />
特別注意的是,由於安全方面的問題,你還需要如下設置才能使本JS代碼正確運行,
否者會出現"沒有許可權 "的問題.
1、設置可信任站點(例如本地的可以為:http://localhost )
2、其次:可信任站點安全級別自定義設置中:設置下面的選項
"對沒有標記為安全的ActiveX控制項進行初始化和腳本運行"----"啟用 "
*/
function BrowseFolder(){
try{
var Message = "請選擇文件夾"; //選擇框提示信息
var Shell = new ActiveXObject( "Shell.Application" );
var Folder = Shell.BrowseForFolder(0,Message,0x0040,0x11);//起始目錄為:我的電腦
//var Folder = Shell.BrowseForFolder(0,Message,0); //起始目錄為:桌面
if(Folder != null){
Folder = Folder.items(); // 返回 FolderItems 對象
Folder = Folder.item(); // 返回 Folderitem 對象
Folder = Folder.Path; // 返迴路徑
if(Folder.charAt(Folder.length-1) != "\\"){
Folder = Folder + "\\";
}
document.all.savePath.value=Folder;
return Folder;
}
}catch(e){
alert(e.message);
}
}