微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Javascript Internet连接测试不起作用

如何解决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 举报,一经查实,本站将立刻删除。