if (menu==null) return;
var shim = getShim(menu);
if (shim==null) shim = createMenuShim(menu,getShimId(menu));
。。。。。。。
只要稍微修改为以下就可以了
function openShim(menu,menuItem)
{
if (document.readyState!="complete") return ;
if (menu==null) return;
var shim = getShim(menu);
if (shim==null) shim = createMenuShim(menu,getShimId(menu));
。。。。
即加上一个载入判断就可以了。 if (document.readyState!="complete") return ;
“internet explore 无法打开internet站点...,已终止操作”,从此消失
另:遮掩 select 的方法还可以用如下:
var allselect = document.getElementsByTagName("select");
for (var i=0; i {
allselect[i].style.visibility = "none";
}
------------------------
通常,关于“Internet Explorer无法打开internet站点××,已终止操作”的错误提示都是在Internet Explorer浏览器里才会出现,Firefox里面打开网页一切正常。这种情况碰到过好多次,而且一种解决方法还不能通用,不同情况需要用不同的方法去折腾。微软的这个烂IE!
解决方法一(针对用户):
首先,清空浏览器缓存文件,在Internet Explorer的工具菜单里选择Internet选项-删除文件,勾选“删除所有脱机内容”,确定即可。
之后,还是在Internet选项的“高级”标签,找到“禁用脚本调试”选项,勾选后确定即可。
最后重新启动IE。
如果上述方法不行的话,再从Internet选项里选择“程序”,点击进入“管理加载项”,把发行者为“未验证”,类型为“浏览器帮助程序对象”,文件扩展名为“.dll”的加载项禁用掉。之后再重新启动IE浏览器。
法一是被动解决方法,如果是自己的网页出现问题,则需要用下面针对开发者的主动方法解决。
一、检查自己的网页代码中是否有没有闭合的HTML标签。如果代码太多,建议使用一些在线代码验证检测工具去完成这项任务。
二、由于IE在页面还没有完全加载的时候就调用了htmlObject的appendChild 或innerHTML操作,因此容易出现“Internet Explorer无法打开internet站点××,已终止操作”的错误提示,可以通过加入setTimeout来解决。即在appendChild 或innerHTML 操作处判断:
document.readyState="complete"
若为否,则setTimeout设置为若干秒之后进行该操作。
三、实在不行,就在调用JavaScript时加上defer属性吧,使页面加载完毕之后再执行该脚本,以避免找不到对象的问题。示例如下所示:
<Script language="JavaScript" src="example.js" defer="defer"></Script>
但是在加入了defer属性的JS代码里不能包含document.write。
终极解决方法:丢了IE,用Firefox吧!