ページに文字カウンターを追加しようとしています。このページで3つの値を入力すると、IDが「AnswerBoxID」のdivのinnerHTMLに大きな文字列が返されます。これで、スクリプトで明らかに数値をカウントする必要があります。これを行うための文字の数は私が書いた
var submit=document.getElementsByClassName('Row3');
function countChars(){
count = document.getElementById('AnswerBoxID').innerHTML.length;
document.title ="Chars "+count+"/160";
}
これは文字の大まかな概算を返します。次にそれをエディターまたは文字をカウントする他の何かに貼り付けると、別の結果が得られます。このメソッドでカウントすると、他のものが報告しているもの(特にnotepad ++)の5文字以内になります。
しかし、私の最大の問題は、更新の値が更新されたときにcountChars()を更新できないことです。JavaScriptdocument.getElementById('AnswerBoxID').innerHTML
では、次のコードを使用してそれを克服しました。
var submit=document.getElementsByClassName('Row3');
for (i=0; i<submit.length; i++){
submit[i].firstChild.setAttribute('onclick','countChars()');
}
GM Pitfalls 2を読んだ後、私は次のようにアプローチを変更しました
for (i=0; i<submit.length; i++){
submit[i].firstChild.addEventListener('click',countChars(),true);
}
しかし、それでも機能しません!そして、誰かが「はい」と尋ねる前に、関数の前にカウント変数を定義します。私は、最も正確な長さのことを本当に気にしませんが、もっと正確にしたいと思いますが、countChars()を実行するonclick要素を送信ボタンに追加したいと思います。