Javascript中的引用问题

时间:2015-04-26 05:05:57

标签: javascript html

我想每隔5秒在div中刷新一个img元素,指示用户是连接到互联网还是未连接。如果用户已连接,则会在线显示图像,但如果用户处于离线状态,则会显示本地图像。

然而,我无法解决这个引用问题。我甚至试过了"& -quot;"事情(没有破折号),它仍然无法正常工作。这是代码:

<script type="text/javascript">
    window.setInterval("refreshDiv()", 5000);
    function refreshDiv(){
    document.getElementById("test").innerHTML = "<img id="this" src="http://stallionware.weebly.com/uploads/3/0/4/3/30431988/4901948_orig.png" onerror="this.src='nowifi.png'">";
}
</script>
<div id=wifi>
<img id="this" src="http://stallionware.weebly.com/uploads/3/0/4/3/30431988/4901948_orig.png" onerror="this.src='nowifi.png'">
</div>

我不想使用jQuery或Ajax或任何服务器端语言,因为这都是在本地计算机上。

3 个答案:

答案 0 :(得分:7)

你可以逃避这样的双引号:

document.getElementById("this").innerHTML = "<img id=\"this\" src=\"http://stallionware.weebly.com/uploads/3/0/4/3/30431988/4901948_orig.png\" onerror=\"this.src='nowifi.png'\">";

通过输入\",您可以告诉JavaScript您要在字符串中插入双引号。您拥有的另一个选择是使用单引号。 (我已经将你的getElementById改为&#39;测试&#39;这个&#39;因为你的HTML没有&#39;测试&#39;作为Id)

此外,您不应像使用refreshDiv那样使用字符串调用函数。相反,你应该这样称呼它的名字:

window.setInterval(refreshDiv, 5000);

答案 1 :(得分:0)

您应该使用单引号和双引号的层次结构。在双引号下使用双引号使JS认为是字符串的组合。但没有运营商就失败了。

<script type="text/javascript">
    window.setInterval("refreshDiv()", 5000);
    function refreshDiv(){
    document.getElementById("test").innerHTML = '<img id="this" src="http://stallionware.weebly.com/uploads/3/0/4/3/30431988/4901948_orig.png" onerror="this.src='nowifi.png'">';
}
</script>
<div id=wifi>
<img id="this" src="http://stallionware.weebly.com/uploads/3/0/4/3/30431988/4901948_orig.png" onerror="this.src='nowifi.png'">
</div>

除此之外,我建议不要每5秒检查一次,然后使用浏览器的在线和离线事件 - 然后将代码保存为setInterval种类。

答案 2 :(得分:0)

在JavaScript中,您可以使用单引号或双引号。对于您的情况,您应该将包含div的字符串放在单引号中,并使用双引号在该字符串中包含HTML属性。但是,无论如何,您的代码中似乎还有其他一些错误。试试这个:

<img id="image" src="http://stallionware.weebly.com/uploads/3/0/4/3/30431988/4901948_orig.png" onerror="error">

在您的Javascript中包含以下内容:

var theImage = document.getElementById('image');
function error() {
  theImage.src='nowifi.png';
}

function refreshDiv(){
  theImage.innerHTML = '<img id="image" src="http://stallionware.weebly.com/uploads/3/0/4/3/30431988/4901948_orig.png"     
  onerror="error">';
}
setInterval(refreshDiv, 5000);