解決済
関数をまとめたいです
function underline(){if(document.all){ //IE
var str=document.selection.createRange().text;
if (str != "") {
document.selection.createRange().text="<u>" + str + "</u>";
} else {
document.form1.CBBE_TEXT.value += "<u></u>"
}
} else { //Firefox
var el=document.getElementById('text');
var sPos = el.selectionStart;
var ePos = el.selectionEnd;
var str = el.value.substring(sPos, ePos);
el.value = el.value.substring(0, sPos) +
"<u>" + str + "</u>" + el.value.substr(ePos);
}
}
と
function green(){
if(document.all){ //IE
var str=document.selection.createRange().text;
if (str != "") {
document.selection.createRange().text="<font color=\"#009900\">" + str + "</font>";
} else {
document.form1.CBBE_TEXT.value += "<font color=\"#009900\"></font>"
}
} else { //Firefox
var el=document.getElementById('text');
var sPos = el.selectionStart;
var ePos = el.selectionEnd;
var str = el.value.substring(sPos, ePos);
el.value = el.value.substring(0, sPos) +
"<font color=\"#009900\">" + str + "</font>" + el.value.substr(ePos);
}
}
をひとつの関数にまとめることは出来ないでしょうか?
教えてください
2006-05-15 18:57の質問
この質問と回答を読んで役に立った場合は「役に立つ質問」に投票してください。投票が多い質問は、役に立つ質問一覧に掲載され、より多くの人に見てもらうことができます。
Ads By Google
回答(1)
1.
2006-05-16 03:06:49

ちょっと内容は違うのですが、div(span)の内容にタグを入れて書き換えるのではなく、スタイルをいじった方が正攻法な気がするので、そちらのコードを示します。
JS部分:
使用例:
changeStyle(arg1,arg2)は、arg1に色、arg2にスタイルを指定します。
arg2に使えるのは、
'u':アンダーライン
'b':太字
'i':イタリック
'r':リセット
です。他は無視されます。
もし、onClickの部分を全部全く同じに書きたいというのであれば、thisを関数に渡してあげて、this.valueでボタンのラベル名を判断してやれば、統一することもできますが、ラベルを変えたときに関数側も変更しなければならなくなるので、やっていません。
JS部分:
function changeStyle(col,stl){
dgText=document.getElementById('text');
if(col!="")
dgText.style.color=col;
if(stl=="u")
dgText.style.textDecoration="underline";
else if(stl=="i")
dgText.style.fontStyle="italic";
else if(stl=="b")
dgText.style.fontWeight="bold";
else if(stl=="r"){//RESET
dgText.style.color="#000000";
dgText.style.textDecoration="none";
dgText.style.fontStyle="normal";
dgText.style.fontWeight="normal";
}
}
使用例:
<input type="button" value="太字" onClick="changeStyle('','b');">
<input type="button" value="斜体" onClick="changeStyle('','i');">
<input type="button" value="アンダーライン" onClick="changeStyle('','u');">
<input type="button" value="緑" onClick="changeStyle('#00FF00','');">
<input type="button" value="リセット" onClick="changeStyle('','r');">
changeStyle(arg1,arg2)は、arg1に色、arg2にスタイルを指定します。
onClick="changeStyle('#FFFFFF','b');"
とすると、id="text"が、白の太字になります。arg2に使えるのは、
'u':アンダーライン
'b':太字
'i':イタリック
'r':リセット
です。他は無視されます。
もし、onClickの部分を全部全く同じに書きたいというのであれば、thisを関数に渡してあげて、this.valueでボタンのラベル名を判断してやれば、統一することもできますが、ラベルを変えたときに関数側も変更しなければならなくなるので、やっていません。
回答レベル : 回答
Ads By Google
コメント(2)
#1. usa
2006-05-15 23:02:29
Javaは使ったことないのですが、Structured Programming的に自分でこれを関数定義することはできないのですか?
#2. ★オニキス☆
2006-06-05 19:27:28
あら、ベストありがとうございます^^
ホントに解決されたのならいいですが、もしそうでなければ、コメント欄でフォローしますよ~。なかなか解決されないので、タグを追加する形でないとダメなのかな~と思っていたのですが・・・。
