簡體   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