2016-08-03 11 views
0

私は、ユーザが任意のテキストを入力できるid 'editor1'を持つプレーンcontenteditableを持っています。また、別のoptionsを含むselectタグがあります。各オプションは異なるフォントファミリです。オプションを選択してくださいonclick change font-family

私がしたことは、ユーザーが選択したテキストをラップしてspanにラップし、それに応じてフォントファミリを変更するオプションをクリックしたときに関数を呼び出したことです。残念ながら、それは動作しません。誰でも実用的なソリューションを持っていますか? (好ましくは純粋ジャバスクリプト)

HTML:

 <select> 
      <option onselect="usecomicsans()" style="font-family: 'Comic Sans MS'">Comic Sans MS</option> 
      <option onselect="usearial()" style="font-family: Arial">Arial</option> 
     </select> 

JS:

 function usecomicsans(){ 
    { 
     var selection= window.getSelection().getRangeAt(0); 
     var selectedText = selection.extractContents(); 
     var span = document.createElement("span"); 
     span.style.fontFamily = "Comic Sans MS"; 
     span.appendChild(selectedText); 
     selection.insertNode(span) 
    } 
    } 

    function usearial(){ 
    { 
     var selection= window.getSelection().getRangeAt(0); 
     var selectedText = selection.extractContents(); 
     var span = document.createElement("span"); 
     span.style.fontFamily = "Arial"; 
     span.appendChild(selectedText); 
     selection.insertNode(span); 
    } 
    } 

編集:私はoptiononclickは動作しません使用していることをどこかで読ん;むしろ、私はをselectの中に使用するべきです。どのように私はこれを行うことについて行くことができるかについての任意のアイデア?

+0

だと思い、ハイフネーションされたCSS属性は同棲ラクダする必要がありますfamilyはfontFamilyになるか、 '.style ['font-family']'を使って混乱を避けることができます...私は開発者ツールコンソールにエラーがないと仮定しています –

+0

変更してもまだ動作しません。それはonclickと関係がありますか? – cosmo

+0

デベロッパーツールコンソールにエラーがないと仮定しています –

答えて

0

私は例えばfont- ...これは簡単な方法:) jsの中

HTML

<div id="output-text"> 
    Hello Bros, welcome to the world 
</div> 
    <select id="input-font" class="input" onchange="changeFont (this);"> 
     <option value="Arial">Arial</option> 
     <option value="Comic Sans MS">Comic Sans MS</option> 
    </select> 
<br> 

Javascriptを

<script> 
    function changeFont(font){ 
     document.getElementById("output-text").style.fontFamily = font.value; 
    } 
</script> 
+0

これはそれの要点でした、ありがとう! – cosmo

関連する問題