如何解决Javascript Internet连接测试不起作用
| 我是javascript的新手,最近开始学习它。无论如何,我有一个奇怪的问题。我在此代码中进行了两项检查:服务器连接检查和Internet连接检查。服务器实际上是物理连接到客户端计算机的,我在启动时每3秒钟检查一次连接,以便一旦服务器启动并运行,客户端将自动启动。现在,客户端具有google-earth插件,因此我想进行Internet连接检查,以便在没有Internet时无需google-earth(和相关代码)就可以启动应用程序。但是,如果我尝试同时执行这两项检查,则应用程序似乎挂起。这让我发疯了,因为它们两个都可以独立运行,但是当它们组合在一起时它们会失败。 同样,在此代码中,图像srcs都指向同一事物。我这样做是为了使你们更容易测试它。无论如何,这是代码:<html>
<head>
</head>
<body>
<script type=\"text/javascript\">
document.getElementsByTagName(\'body\')[0].innerHTML +=
\'<img id=\"testimage\" style=\"display: none;\" \' +
\'src = http://i.microsoft.com/about/shared/templates/components/mscomFooter/logo.png?\' + Math.random() + \'\" \' +
\'onerror=\"fail();\" \' + \'onload=\"test2();\">\';
function fail()
{
alert(\"fail\")
}
function pass()
{
alert(\"pass\")
}
function test2()
{
document.getElementsByTagName(\'body\')[0].innerHTML +=
\'<img id=\"testimage2\" style=\"display: none;\" \' +
\'src = http://i.microsoft.com/about/shared/templates/components/mscomFooter/logo.png?\' + Math.random() + \'\" \' +
\'onerror=\"fail();\" \' + \'onload=\"pass();\">\';
}
</script>
</body>
</html>
解决方法
尝试以下方法:
<html>
<head>
</head>
<body>
<div id=\"a\"></div>
<div id=\"b\"></div>
<script type=\"text/javascript\">
document.getElementById(\'a\').innerHTML +=
\'<img id=\"testImage\" style=\"display: none;\" \' +
\'src = http://i.microsoft.com/about/shared/templates/components/mscomFooter/logo.png?\' + Math.random() + \'\" \' +
\'onerror=\"fail();\" \' + \'onload=\"test2();\">\';
function fail()
{
alert(\"fail\")
}
function pass()
{
alert(\"pass\")
}
function test2()
{
document.getElementById(\'b\').innerHTML +=
\'<img id=\"testImage2\" style=\"display: none;\" \' +
\'src = http://i.microsoft.com/about/shared/templates/components/mscomFooter/logo.png?\' + Math.random() + \'\" \' +
\'onerror=\"fail();\" \' + \'onload=\"pass();\">\';
}
</script>
</body>
</html>
我在做什么不同?
首先,我没有操纵document.body的innerHTML。我正在操纵两个不同的div(稍后对此进行详细介绍)。修改innerHTML可能会有一些问题,某些事情无法在现有框架中正确注册,因此它们并不总是能够按预期运行。即使这不会引起问题,也通常会对此表示反对。
其次,我使用了两个不同的位置来加载两个不同的图像。您的两个脚本在谁都按相同顺序执行时,对谁按什么顺序执行有些争执。我只是分开了哈特菲尔德一家和麦考伊一家,而阿巴拉契亚斯的一切都很好。
, 代替document.getElementsByTagName(\"body\")[0]
,使用document.body
。一样,但是容易。 document.head
,document.title
,document.documentElement (html tag)
,document.applets
8ѭ,document.embeds
,document.forms
,document.images
也一样
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。