繁体   English   中英

JavaScript无法在FF和IE中运行

[英]JavaScript not working in FF and IE

作为JS新手,我很难追查到这一点。

我正在写一个简单的(?)脚本,它在textarea(用于编写SMS消息)下显示我当前短信已经剩下多少个字符以及到目前为止我写了多少短信。

我的标题中包含以下JavaScript:

<script type='text/javascript'>
    function CheckCount(text, length) {
        var MaxLength = new Number(length);
        messages = Math.ceil(((text.value) ? text.value.length : 0) / 160);
        remaining = messages * 160 - (((text.value) ? text.value.length : 0) % (messages * 160) || messages * 160);
        if (text.value.length == 0) { messages = 1; remaining = 160; }
        document.getElementById('messages').innerText = messages + ' SMS';
        document.getElementById('remaining').innerText = remaining + ' Characters remaining';
    }
</script>

在网站的正文中我把它:

<textarea name="sms_text" cols="35" rows="5" onKeyUp="javascript:CheckCount(this,4000);" onChange="javascript:CheckCount(this,4000);"></textarea>
<p style="margin-left:174px">
    <span id="remaining">160 Characters remaining</span> |
    <span style="clear:both" id="messages">1 SMS</span>
</p>

这适用于Opera,Safari和Chrome。 Firefox和IE有他们的问题。

请不要打扰我太多。 我刚开始使用JavaScript,经过一天的乏味搜索后,我无法找到解决方案。 :)

您不需要在textarea处理程序属性中包含 javascript:

虽然上述情况属实,但您的问题是由使用innerText引起的。 更改为innerHTML适用于FireFox。

http://jsfiddle.net/ZTRFA/1/

为了使它在IE8中工作,有必要声明messagesremaining 我还删除了冗余行var MaxLength = new Number(length);

http://jsfiddle.net/ZTRFA/2/

function CheckCount(text, length) {
       var messages = Math.ceil(((text.value) ? text.value.length : 0) / 160);
       var remaining = messages * 160 - (((text.value) ? text.value.length : 0) % (messages * 160) || messages * 160);
       if (text.value.length == 0) { messages = 1; remaining = 160; }
       document.getElementById('messages').innerHTML = messages + ' SMS';
        document.getElementById('remaining').innerHTML = remaining + ' Characters remaining';
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM