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);
}
}