アプリ版:「スタンプのみでお礼する」機能のリリースについて

function bold(){
if(document.all){ //IE
var str=document.selection.createRange().text;
if (str != "") {
document.selection.createRange().text="<b>" + str + "</b>";
} else {
document.form1.CBBE_TEXT.value += "<b></b>"
}
} 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) +
"<b>" + str + "</b>" +el.value.substr(ePos);
}
}

function italic(){
if(document.all){ //IE
var str=document.selection.createRange().text;
if (str != "") {
document.selection.createRange().text="<i>" + str + "</i>";
} else {
document.form1.CBBE_TEXT.value += "<i></i>"
}
} 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) +
"<i>" + str + "</i>" +el.value.substr(ePos);
}
}

<input type="button" value="太字" onclick="bold()">
<input type="button" value="斜字" onclick="italic()">
で制御しています。
関数化できませんか?

A 回答 (3件)

>関数化できませんか?



関数化とは具体的にどのような状態を
さしていますか?
すでに関数にみえますが・・。

この回答への補足

上の2つの関数をまとめたいんです。1つの関数にしたいです。

補足日時:2006/05/15 18:19
    • good
    • 0

つまり、


bold() とitalic() は、内容が<i></i> が<b></b>だけの違いなので
1つにできないかということだと思いますが
例えば
deco("i")
のように呼び出して
function deco( k )
のように受けるとすると
="<i>" + str + "</i>";
のような部分は
="<" + k + ">" + str + "</" + k + ">";
のように一般化できます。
    • good
    • 0

<b></b>か、<i></i>を文字の前後に付加すればいいんですよね?


<input type="button" value="太字" onclick="cnv('b')"> <input type="button" value="斜字" onclick="cnv('i')">

function cnv(var p1){
var ps,pe,pd;
ps = "<"+p1+">";
pe = "</"+p1+">";
pd = ps+pe;

if(document.all){ //IE
var str=document.selection.createRange().text;
if (str != "") {
document.selection.createRange().text=ps + str + pe; } else { document.form1.CBBE_TEXT.value += pd; } } 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) + ps + str + pe + el.value.substr(ePos); } }

でいかがでしょうか?
<<マルチポスト先に回答した内容ですが、これ以降の回答は、削除されて記録にないため、省略します。>>
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!