LOGIN ID Password Auto Login Register Now! Lost Password?
XUGJ Forum

Firefox, Chrome, Opera で BBcode やスマイリーをキャレット位置に挿入・その2

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています

投稿ツリー


前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2011/8/27 2:04 | 最終変更
domifara  Ensign   投稿数: 300
「Firefox, Chrome, Opera で BBcode やスマイリーをキャレット位置に挿入」
http://www.xugj.org/modules/d3forum/index.php?topic_id=1053
で、xoops.jsが訂正されて、スマイリーをキャレット位置に挿入できるですが、

画像のBBCodeに関してしては、IE以外は、今までどうり最後に追加されます。

これは、
legacy_image_list.htmlに
直接、画像挿入要のjsが書かれていて
訂正されていないからで
変更前
<script type="text/javascript">
<!--//
function appendCode(addCode) {
	var targetDom = window.opener.xoopsGetElementById('<{$target}>');
	if (targetDom.createTextRange && targetDom.caretPos){
  		var caretPos = targetDom.caretPos;
		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? addCode + ' ' : addCode;  
	} else if (targetDom.getSelection && targetDom.caretPos){
		var caretPos = targetDom.caretPos;
		caretPos.text = caretPos.text.charat(caretPos.text.length - 1) == ' ' ? addCode + ' ' : addCode;
	} else {
		targetDom.value = targetDom.value + addCode;
  	}
	window.close();
	return;
}
//-->
</script>


<script type="text/javascript">
<!--//
function appendCode(addCode) {
  var targetDom = window.opener.xoopsGetElementById('<{$target}>');
    if (window.opener.document.selection) { //for IE
      if (targetDom.createTextRange && targetDom.caretPos){
        var caretPos = targetDom.caretPos;
        caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? addCode + ' ' : addCode;
      } else if (targetDom.getSelection && targetDom.caretPos){
        var caretPos = targetDom.caretPos;
        caretPos.text = caretPos.text.charat(caretPos.text.length - 1) == ' ' ? addCode + ' ' : addCode;
      } else {
        targetDom.value = targetDom.value + addCode;
      }
    } else if (targetDom.setSelectionRange) { // for Fx, Chrome, Opera
        var startPos = targetDom.selectionStart;
        var endPos = targetDom.selectionEnd;
        var lastPos = startPos + addCode.length;
        targetDom.value = targetDom.value.substring(0, startPos) + addCode
                       + targetDom.value.substring(endPos, targetDom.value.length);
        targetDom.setSelectionRange(lastPos, lastPos); // Move caret to inserted text end
    } else { // for Other Browser
        targetDom.value = targetDom.value + addCode;
    }

  window.close();
  return;
}

//-->
</script>
でカーソル位置に挿入されるはずです。
お試しください。

一応要望を上げてみた
https://sourceforge.net/tracker/?func=detail&aid=3398822&group_id=159...
投票数:0 平均点:0.00
  条件検索へ

Back to Page Top
MainMenu
Manuals
Search
XOOPS Official & Dev.
XOOPS Communities