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ファイルをリロードするか、キャッシュをクリアしてみてください。


コメントを残す

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

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