点击右边菜单 但是网断了 我改怎样捕获找不到url连结的异常呢 呵呵,那是页面转向,即redirect,是window的行为,js没辙!如果是iframe内部跳转,那么在外层窗体或许可以用js监控一下! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 yixianggao 看见您的话 我感触颇深 那您一定也懂js了吧能不能告诉我是哪个window的行为呢?还有啊,如果是iframe内部跳转,怎么在外层窗体或许可以用js监控呢? lz滴页面是frameset结构,还是普通body页面,亦或普通body页面内嵌iframe?!其实页面跳转就是 window.location.href="TargetUrl";如果是普通body页面滴话,根本无法监控!如果是普通body页面内嵌iframe,俺要去试试看,一会儿再来回帖! 您说的body中内嵌iframe是指的什么情况呢 哦,lz急啥呀,哪里有这样问问题滴!俺要断网才能模拟试验环境,当然要消失一会儿!以下代码:IE6sp1, TT3.8 测试可用,FF2无效!L@_@K<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head> <title>dhtml.iframe.checkNetConnection.html</title> <meta name="generator" content="editplus" /> <meta name="author" content="Gao YiXiang" /> <meta name="email" content="[email protected]" /> <meta name="keywords" content="javascript dhtml dom" /> <meta name="description" content="I love web development." /> <style type="text/css">div{ float: left;} </style></head><body> <h3>IE6sp1, TT3.8 测试可用,FF2无效!</h3> <div id="" class=""> <iframe id="ifmTest" frameborder="1" scrolling="auto" width="400" height="300"></iframe> </div> <div id="" class=""> <a href="http://www.google.com">Google(断网时再测)</a><br /> <a href="http://www.baidugoogle.com">Baidugoogle(错误链接)</a><br /> <textarea id="ttaShow" rows="20" cols="60"></textarea> </div> <script type="text/javascript"> <!--function $(sId){ return document.getElementById(sId);}var oIframe = $("ifmTest");var oOutput = $("ttaShow");var iTimerID = null;var cHlk = document.getElementsByTagName("a");for (var i=0; i<cHlk.length; i++){ cHlk[i].onclick = function() { oIframe.src = this.href; iTimerID = setInterval(checkNetConnection, 100); return false; };}function checkNetConnection(){ try { var localPageContent = document.frames("ifmTest").document.body.innerHTML; // 测试用。 oOutput.value = localPageContent; if (localPageContent.indexOf("找不到服务器或发生 DNS 错误")>-1) { document.frames("ifmTest").document.write("请检查您的<b style='color: red'>网络连接是否正常</b>!"); clearInterval(iTimerID); } else if (localPageContent.indexOf("找不到网页")>-1) { document.frames("ifmTest").document.write("请检查您输入的<b style='color: red'>网址是否正确</b>!"); clearInterval(iTimerID); } } catch (e) { alert(e.message+"\n注:说明请求得到了回应,并未调用本地页面,因此才会拒绝访问!"); clearInterval(iTimerID); }} //--> </script></body></html> 请把浏览器版本号和语言版本贴出来!E文IE肯定无效,要改改才可以用! 俺刚才断网又试验了一下,IE6sp1,TT3.8测试可用,都是简体中文版,可以正常显示“请检查您的网络连接是否正常!”。 我是用eEitPlus进行测试的不知道是不是它的错误呢 哦,俺又用EidtPlus v2.31(524) EN 测试没问题!lz还是用标准IE浏览器测试吧,因为那些页面其实都是IE自带滴,如果检测不到相应文本,并未触发异常,就会一直循环下去,什么也不发生! 注:说明请求得到了回应,并未调用本地页面,因此才会拒绝访问 ----------------------这是catch返回滴内容!与$无关,$只是一个缩写而已! catch (e) { alert(e.message+"\n注:说明请求得到了回应,并未调用本地页面,因此才会拒绝访问!"); clearInterval(iTimerID); }也许是页面缓存,要不就是没有断网!总之与环境有关!1 清缓存文件!2 拔网线或停网卡! message 输出的是拒绝访问就是没拔网线的时候也是 输出拒绝访问的字样这是为什么呢 message 输出的是拒绝访问 就是没拔网线的时候也是输出拒绝访问的字样 这是为什么呢-----------------------------------因为如果iframe正常返回页面(不同域名下的页面),IE出于安全性考虑,会禁止脚本访问。但如果断网后,则返回IE自带页面,在IE6sp1-chs下是可以修改滴!该吃晚饭去了,88 哦,20可真难得,终于好了!第一版确实有问题,是俺疏忽了,哈现在这个第二版还不错,lz测测看吧!L@_@K<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head> <title>dhtml.iframe.checkNetConnection.html</title> <meta name="generator" content="editplus" /> <meta name="author" content="Gao YiXiang" /> <meta name="email" content="[email protected]" /> <meta name="keywords" content="javascript dhtml dom" /> <meta name="description" content="I love web development." /> <style type="text/css">div{ float: left;} </style></head><body> <h3>>网络连接状态检查脚本,IE6sp1, TT3.8 测试可用,FF2无效!</h3> <div id="" class=""> <iframe id="ifmTest" frameborder="1" scrolling="auto" width="400" height="300"></iframe> </div> <div id="" class=""> <a href="http://www.google.com">Google(断网时再测)</a><br /> <a href="http://www.baidugoogle.com">Baidugoogle(错误链接)</a><br /> </div> <script type="text/javascript"> <!--function $(sId){ return document.getElementById(sId);}var oIframe = $("ifmTest");var oOutput = $("ttaShow");var iTimerID = null;var iCheckCount = 0;// 最长检测时间为半分钟,足够长了!var iCheckMax = 30;var cHlk = document.getElementsByTagName("a");for (var i=0; i<cHlk.length; i++){ cHlk[i].onclick = function() { oIframe.src = this.href; if (iTimerID != null) clearInterval(iTimerID); iTimerID = setInterval(checkNetConnection, 1000); return false; };}function checkNetConnection(){ try { iCheckCount++; var sIframeUrl = document.frames("ifmTest").location.href; if (sIframeUrl.indexOf("shdoclc.dll/navcancl.htm")>-1 || sIframeUrl.indexOf("shdoclc.dll/dnserror.htm")>-1) { document.frames("ifmTest").document.write("请检查您的<b style='color: red'>网络连接是否正常</b>!"); clearInterval(iTimerID); } else if (sIframeUrl.indexOf("shdoclc.dll/http_404.htm")>-1) { document.frames("ifmTest").document.write("请检查您输入的<b style='color: red'>网址是否正确</b>!"); clearInterval(iTimerID); } } catch (e) { // 仅调试用! //alert(e.message+"\n注:说明请求得到了回应,并未调用本地页面,因此才会拒绝访问!"); } // 到达检查次数上限后自动终止! if (iCheckCount == iCheckMax) { clearInterval(iTimerID); }} //--> </script></body></html> Function 对象的属性与方法 javascript中如何让复选框的值相加 js判断为空==""的判断机制是什么?变量为0为何返回true? 新手求助!表格当鼠标移入到某行的时候这行的颜色变成深蓝色,鼠标移开又回到原来的颜色 GOOGLE的股票走势图是用什么工具去画的? JS控制Div,在线等,谢谢 我被自己写的JS整晕了@_@ easyui的accordion怎么设置不自动回缩啊? 怎样做一个这样的计算器?? 如何获得所选radio的文本 如何通过一个复选框来控制其他相同名称的多个复选框的全选和反选??? ajax取值问题
能不能告诉我是哪个window的行为呢?
还有啊,如果是iframe内部跳转,怎么在外层窗体或许可以用js监控呢?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>dhtml.iframe.checkNetConnection.html</title>
<meta name="generator" content="editplus" />
<meta name="author" content="Gao YiXiang" />
<meta name="email" content="[email protected]" />
<meta name="keywords" content="javascript dhtml dom" />
<meta name="description" content="I love web development." />
<style type="text/css">
div
{
float: left;
}
</style>
</head>
<body>
<h3>IE6sp1, TT3.8 测试可用,FF2无效!</h3>
<div id="" class="">
<iframe id="ifmTest" frameborder="1" scrolling="auto" width="400" height="300"></iframe>
</div>
<div id="" class="">
<a href="http://www.google.com">Google(断网时再测)</a><br />
<a href="http://www.baidugoogle.com">Baidugoogle(错误链接)</a><br />
<textarea id="ttaShow" rows="20" cols="60"></textarea>
</div>
<script type="text/javascript">
<!--
function $(sId)
{
return document.getElementById(sId);
}var oIframe = $("ifmTest");
var oOutput = $("ttaShow");
var iTimerID = null;
var cHlk = document.getElementsByTagName("a");
for (var i=0; i<cHlk.length; i++)
{
cHlk[i].onclick = function()
{
oIframe.src = this.href;
iTimerID = setInterval(checkNetConnection, 100);
return false;
};
}function checkNetConnection()
{
try
{
var localPageContent = document.frames("ifmTest").document.body.innerHTML; // 测试用。
oOutput.value = localPageContent; if (localPageContent.indexOf("找不到服务器或发生 DNS 错误")>-1)
{
document.frames("ifmTest").document.write("请检查您的<b style='color: red'>网络连接是否正常</b>!"); clearInterval(iTimerID);
}
else if (localPageContent.indexOf("找不到网页")>-1)
{
document.frames("ifmTest").document.write("请检查您输入的<b style='color: red'>网址是否正确</b>!"); clearInterval(iTimerID);
}
}
catch (e)
{
alert(e.message+"\n注:说明请求得到了回应,并未调用本地页面,因此才会拒绝访问!"); clearInterval(iTimerID);
}
}
//-->
</script>
</body>
</html>
不知道是不是它的错误呢
如果检测不到相应文本,并未触发异常,就会一直循环下去,什么也不发生!
----------------------
这是catch返回滴内容!
与$无关,$只是一个缩写而已!
catch (e)
{
alert(e.message+"\n注:说明请求得到了回应,并未调用本地页面,因此才会拒绝访问!"); clearInterval(iTimerID);
}也许是页面缓存,要不就是没有断网!总之与环境有关!1 清缓存文件!
2 拔网线或停网卡!
就是没拔网线的时候也是 输出拒绝访问的字样
这是为什么呢
就是没拔网线的时候也是输出拒绝访问的字样
这是为什么呢
-----------------------------------
因为如果iframe正常返回页面(不同域名下的页面),
IE出于安全性考虑,会禁止脚本访问。但如果断网后,则返回IE自带页面,
在IE6sp1-chs下是可以修改滴!该吃晚饭去了,88
现在这个第二版还不错,lz测测看吧!L@_@K
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>dhtml.iframe.checkNetConnection.html</title>
<meta name="generator" content="editplus" />
<meta name="author" content="Gao YiXiang" />
<meta name="email" content="[email protected]" />
<meta name="keywords" content="javascript dhtml dom" />
<meta name="description" content="I love web development." />
<style type="text/css">
div
{
float: left;
}
</style>
</head>
<body>
<h3>>网络连接状态检查脚本,IE6sp1, TT3.8 测试可用,FF2无效!</h3>
<div id="" class="">
<iframe id="ifmTest" frameborder="1" scrolling="auto" width="400" height="300"></iframe>
</div>
<div id="" class="">
<a href="http://www.google.com">Google(断网时再测)</a><br />
<a href="http://www.baidugoogle.com">Baidugoogle(错误链接)</a><br />
</div>
<script type="text/javascript">
<!--
function $(sId)
{
return document.getElementById(sId);
}var oIframe = $("ifmTest");
var oOutput = $("ttaShow");
var iTimerID = null;
var iCheckCount = 0;
// 最长检测时间为半分钟,足够长了!
var iCheckMax = 30;
var cHlk = document.getElementsByTagName("a");
for (var i=0; i<cHlk.length; i++)
{
cHlk[i].onclick = function()
{
oIframe.src = this.href; if (iTimerID != null) clearInterval(iTimerID);
iTimerID = setInterval(checkNetConnection, 1000); return false;
};
}function checkNetConnection()
{
try
{
iCheckCount++; var sIframeUrl = document.frames("ifmTest").location.href; if (sIframeUrl.indexOf("shdoclc.dll/navcancl.htm")>-1
|| sIframeUrl.indexOf("shdoclc.dll/dnserror.htm")>-1)
{
document.frames("ifmTest").document.write("请检查您的<b style='color: red'>网络连接是否正常</b>!"); clearInterval(iTimerID);
}
else if (sIframeUrl.indexOf("shdoclc.dll/http_404.htm")>-1)
{
document.frames("ifmTest").document.write("请检查您输入的<b style='color: red'>网址是否正确</b>!"); clearInterval(iTimerID);
}
}
catch (e)
{
// 仅调试用!
//alert(e.message+"\n注:说明请求得到了回应,并未调用本地页面,因此才会拒绝访问!");
} // 到达检查次数上限后自动终止!
if (iCheckCount == iCheckMax)
{
clearInterval(iTimerID);
}
}
//-->
</script>
</body>
</html>