QuickTags.jsの不具合

Edit Button Templateを使って、カスタマイズしたタグボタンを追加していますが、ボタンを使ってタグを追加すると、スクロールバーが一番上まで戻ってしまって、編集の使い勝手が非常に悪くなりました。

調べてみたら、「Edit Button Template」が悪いのではなく、ボタン機能を提供しているQuickTagsのJavaScriptに機能不足がありました。(Mozilla/Netscapeのみ)
実際に追加したボタンでなくとも、imgボタンなどで画像を挿入しても、スクロールがトップまで戻ってしまいます。

原因は、wp-includes/js/quicktags.js内の、edInsertContent関数内にありますです。

修正前:

//MOZILLA/NETSCAPE support
else if (myField.selectionStart || myField.selectionStart == '0') {
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
myField.value = myField.value.substring(0, startPos)
+ myValue
+ myField.value.substring(endPos, myField.value.length);
myField.focus();
myField.selectionStart = startPos + myValue.length;
myField.selectionEnd = startPos + myValue.length;
}

修正後:

//MOZILLA/NETSCAPE support
else if (myField.selectionStart || myField.selectionStart == '0') {
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
var scrollTop = myField.scrollTop; //ADD
myField.value = myField.value.substring(0, startPos)
+ myValue
+ myField.value.substring(endPos, myField.value.length);
myField.focus();
myField.selectionStart = startPos + myValue.length;
myField.selectionEnd = startPos + myValue.length;
myField.scrollTop = scrollTop; //ADD
}

このように修正してみたところ、私の使っているFireFoxでもスクロールが戻されずに編集が継続できました。
※jsファイルがブラウザのキャッシュに残っている時があるので、その場合には、jsファイルをリロードするか、キャッシュをクリアしてみてください。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください