JavaScriptのdesignmodeに関する質問です。

iframeにdesignmode='on'を設定し、WYSIWYGな編集環境を開発しています。

これにつきまして、単純にdesignmodeを実装するだけでは、iframe内でENTERキー押下による改行を行った場合に見た目として二行分の改行がなされ、<p></p>タグが挿入されるという挙動になります。
(一行分の改行を行い、<br />タグを挿入するためにはSHIFT+ENTER)。

直感的な操作を実現する上では、ENTER押下時には一行分の改行を行い、<br />タグ挿入という挙動に変更したいのですが、その方法をご存知の方、教えていただけないでしょうか。

回答の条件
  • 1人5回まで
  • 登録:2006/10/03 10:48:40
  • 終了:2006/10/10 10:50:10

回答(1件)

id:talepanda No.1

talepanda回答回数57ベストアンサー獲得回数122006/10/03 13:22:41

ポイント60pt
<html>
  <head>
    <script type="text/javascript">
      var doc=null;
      function init(){
      if (document.all) {doc = frames[0].document;setTimeout(initie,0)}
      else {doc = document.getElementById("orz").contentDocument;}       
      doc.designMode = "on";
      }
      
      function initie(){
      doc.documentElement.onkeydown=function(){
      var e=window.frames[0].event,k=e.keyCode,m=e.shiftKey;
      if(k==13){var b=doc.createElement("br");doc.execCommand("InsertMarquee",false,"orz_orz_orz");
      doc.getElementById("orz_orz_orz").parentNode.replaceChild(b,doc.getElementById("orz_orz_orz"));return false;}
      }
      }
    </script>
  </head>
  <body onload='init();' onclick="alert(doc.documentElement.innerHTML)">
    <iframe id="orz" width="500px"height="500px"></iframe>
  </body>
</html>

みたいな。かなり強引なhackですが。ちゃんと調べたらもっといい方法があるかも。

id:kaza13

返事が遅くなりましたが、ありがとうございます!!

めちゃくちゃ助かりました。

2006/10/10 10:32:41

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません