• 締切済み

テキストエリアに書き込んだデータをクリップボードにコピーする方法

<input type = "text" name = "namae">として、テキストエリア入力した文字を クリップボードにコピーする方法はありますでしょうか? できれば、『送信』ボタンを押すと同時にクリップボードに貼り付けたいです。 よろしくお願いします。

みんなの回答

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

Internet Explorer オンリーになっちゃいますが、以下のようなスクリプトでできるかも。 window.clipboardData.setData("Text", namae.innerText); namae には、対象のテキストエリアの要素が入っているとして、これを、その form の onSubmit でやれば良いんじゃないかなあ。 # 試してません

参考URL:
http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/clipboarddata.asp
quick-nono
質問者

お礼

a-kumaさんこんばんは。 私も同時にいろいろと方法を探していました。30分ほどまえに、 JavaScriptで、テキストエリアの内容をクリップボードにコピーする スクリプトを見つけました。 <script> function clip_copy() { if (document.all && navigator.userAgent.match(/windows/i) && document.obj.namae.value) { copy_obj = document.obj.namae.createTextRange() copy_obj.execCommand("Copy") } } </script> このスクリプトをフォームタグ内で onSubmitで呼んでやると、うまくいきました。 ありがとうございました。

関連するQ&A

  • リンクからクリップボードへコピー

    JavaScript で、クリップボードへテキストを送る方法がありました。 それが以下のようなものですが、 <input type="button" value="クリップボードへ送る" onClick='window.clipboardData.setData("text","テキスト文字")'> これだとボタンを押す時にのみクリップボードへ送られますが、 URL 先へのリンクをクリックしたら、クリップボードコピーできるように したいのです。可能でしょうか。

  • スマートフォンのクリップボードに文字をコピーしたい

    アプリを使わずウェブ上で、スマートフォンのPCでいうクリップボードに、 文字列をコピーしたいのですが可能なものでしょうか? 例えばIE等ならば以下のような感じのHTMLで テキストボックスの文字列をボタンを押すことでコピーが出来ます。 <form name="CopyTest"> <textarea id="SourceBody" rows="4" cols="44" name="txt">sample</textarea> <input type="button" value="クリップボードにコピー" id="btnSetText" onClick='window.clipboardData.setData("text",document.CopyTest.txt.value)'> </form> この方法では私の使っているアンドロイドにはコピー出来ませんでした(当然といえば当然ですが・・・)。 他にもJQueryで組んでいるサイトも見てみたのですが、 やはりスマートフォンでは自分で範囲を選択してコピーを選ぶという手間をしない限り、 コピーすることが出来ず、私の知識では解決に及びませんでした。 スマートフォンのクリップボードに文字をさせるもしくは不可能かどうかをご存知でしたら、 アドバイスいただけると助かります。 よろしくおねがいします。

  • クリップボードにコピー ソースをより少なく

    現在は下記のようにクリップボードへのコピーボタンを つくっています function clip_copy() { if (document.all && navigator.userAgent.match(/windows/i) && document.obj.area.value) { copy_obj = document.obj.area.createTextRange() copy_obj.execCommand("Copy") alert("クリップボードにコピー完了"); } } <body>下 <form name="obj"><textarea name="area"> ~内容~ </textarea> <input type=button value="クリップボードにコピー"></form> 今までは1つのページに<textarea>が ひとつだったので、問題なかったのですが、 複数になり、今後も増えそうです(もちろん同ページ内で)。 全ての<textarea>にクリップボードにコピーできる ボタンをつけたいのですが、 単純に上記のものを複数つくると、ソースやファイルが 増えてしまいます。 シンプルな記述方法はないものかと 模索中です。ご存知の方いらっしゃいましたら ご教授ください。

  • ボタンを押下するとテキストフォームの値をクリップボードに送るJS

    ボタンを押下するとテキストフォームの値をクリップボードに送るJS 以下のテキストフォームの脇にあるボタンを押すと、「テキストフォームの値+.jpg」のをクリップボードにコピーするJSをご教示ください。 たとえば、一行目のボタンを押下すると、「鳩山.jpg」という文字列がクリップボードに送られるイメージです。 よろしくお願い致します。 <html> <head> <script> //--> </script> </head> <body> <form action="xxxxx" method="post"> <table border="1"> <tr> <td>1</td> <td><input name="mytext[]" value="鳩山"></td> <td><input type="button" name="Copy" value="コピー"></td> </tr> <tr> <td>2</td> <td><input name="mytext[]" value="小沢"></td> <td><input type="button" name="Copy" value="コピー"></td> </tr> <tr> <td>3</td> <td><input name="mytext[]" value="平野"></td> <td><input type="button" name="Copy" value="コピー"></td> </tr> <tr> <td>4</td> <td><input name="mytext[]" value="管"></td> <td><input type="button" name="Copy" value="コピー"></td> </tr> </table> </form> </body> </html>

  • セル内のテキストをクリップボードにコピーするVBA

    EXCELに入力している表からテキストを抜き出して、jpegファイル名に入りつけようとしています。 その際、毎回右クリックしてコピーするのが面倒なので、ボタン(アクティブなセル内のテキストをクリップボードにコピーするVBA)を作ろうとしているのですが、単に Sub copy() ActiveCell.copy End Sub だと、ファイル名にペーストした際、「ファイル名には次の文字は使用できません」と言われてしまいます。(余分なスペースが入っているようです) どうすればうまくできるのでしょうか?

  • テキストエリア内の改行もそのままクリップボードへ

    テキストエリアをクリック→テキストエリア内の内容がコピーされる。 というページを作成しています。 <textarea cols="65" rows="6" onclick="this.select();clipboardData.setData('text',this.value);"> ○○○ ●●● △△△ 111111 222222 </textarea> この内容だと、テキストエリア内の改行が反映されず、コピーされたものを他の場所に貼り付けると、すべて横に繋がった1行の文になってしまいます。 これを、目に見えているまま、改行も含めてそのままコピーさせるには、どうすればいいですか? ちなみに、必要な情報な情報かどうかわかりませんが、同様のテキストエリアが同一ページ内に複数あります。 テキストエリアをクリックでコピーではなく、コピーボタンを押下でコピーでも構いませんが、コピーされるとテキストエリアの色が反転(?)するという動作がほしいと思っています。 説明が下手ですみません…よろしくお願いします。

  • クリップボードにデータを送る(コピーする)には?

    vbaでクリップボードにデータを送る(コピーする)には? エクセルです。 Sub Macro() Selection.Copy End Sub で、クリップボードにデータを送ってることになりますよね? 「どこかのセルをコピーする」ではなく、例えば「abc」という文字をコピーさせて、 いつでも貼り付けられる状態にしたいのですが、vbaでそういうことは可能ですか? Sub Macro() "abc"をクリップボードに送る End Sub 的な事がしたいです。

  • テキストエリアに入力された語に特定の語句を附加したい

    「特定の語句+","+テキストエリアに入力された語」をフォーム送信したいと思っています。 (1)テキストエリア1(識別名=NAME1)に入力された語を調べて警告メッセージを発し、(2)この警告メッセージとテキストエリア1に入力された語を、「,」で区切った1つの文字列(識別名=NAME2)としたうえで(3)送信したいと考えています。 そこで、試行錯誤しながら、一応、下のように記述はしてみたのですが、(テキストエリア1に数字を入力した場合を除き)上手く動作しません。 つきましては、恐れ入りますが、どなたか、正しい記述をご教授いただけませんでしょうか。JAVAスクリプト全くの初心者ですが、何卒よろしくお願いいたします。 <head> <script language="JavaScript"><!-- function check() { //(1)条件にマッチしてるか判断 txt = document.myFORM.NAMAE1.value; //テキストエリア1に入力された語をtxtに data=txt.match(/a[^\&\"]*d/im); //txtが条件にマッチしてるか判断 alert1="メッセージ"; if (!data) {alert(alert1); //マッチしていない時は警告メッセージを表示 //(2)警告メッセージとテキストエリア1に入力された語を、とりあえずテキストエリア2に入れようと考えました。 n=0; n=eval(document.myFORM.NAMAE1.value); //とテキストエリア1に入力された語をnに document.myFORM.NAMAE2.value=alert1+","+n+","; //テキストエリア2に警告メッセージとnを入れようとしています //(3)そして、テキストエリア2内の語を送信 document.myFORM.submit(); } } // --></script> </head> <body> <form name="myFORM" method="post" action="**.cgi" > <A onclick="check()"><IMG src="1.gif"></A> <textarea name="NAMAE1"></textarea></td> <textarea name="NAMAE2"></textarea> </form> </body>

  • クリップボードにテキストを送る

    MFCのプログラムの中で,テキストのデータをクリップボードにコピーしたいのですが,どうすればよろしいのでしょうか?

  • 追加したテキストボックスとテキストエリアの数の制御

    下記のようにテキストボックスとテキストエリアの数をボタンを押すことによって増やしていきます。 で、テキストボックスとテキストエリアは最大10個までとしたいのですが、どのようにしたらいいでしょうか? あとテキストエリアを追加していくとテキストエリアとテキストエリアの間が詰まってしまいます。間を空ける方法はないでしょうか? <script type="text/javascript"> function myAdd(){ var oTR=document.createElement("tr"); var c=count("mat"); var names=["mat","qua"]; for(var i in names){ var oTD = document.createElement("td"); var oTag = document.createElement("input"); oTag.setAttribute("type", "text"); oTag.setAttribute("name", names[i] + (c+1).toString()); oTD.appendChild(oTag); oTR.appendChild(oTD); } document.getElementById("t0").getElementsByTagName("tbody")[0].appendChild(oTR); } function count(name){ var tags=document.getElementsByTagName("input"); var c=0; var reg=RegExp("^"+name+"[0-9]+$"); for(var i=0;i<tags.length;i++){ if(tags[i].name.match(reg)){ c++; } } return c; } var tag_num = 4; function myTextAreaAdd(){ var oTag = document.createElement("textarea"); oTag.setAttribute("name", "foo" + tag_num++); var oDiv = document.getElementById("area"); oDiv.appendChild(oTag); } </script> </head> <body><form method="post" enctype="multipart/form-data" action="check.php"> <table id="t0" border> <tbody> <tr><td><input type="text" name="mat1" value=""></td> <td><input type="text" name="qua1" value=""></td> </tr> <tr><td><input type="text" name="mat2" value=""></td> <td><input type="text" name="qua2" value=""></td> </tr> <tr><td><input type="text" name="mat3" value=""></td> <td><input type="text" name="qua3" value=""></td> </tr> <tr><td><input type="text" name="mat4" value=""></td> <td><input type="text" name="qua4" value=""></td> </tr> </tbody> </table> <input type="button" value="追加する" onClick="myAdd()"> <br /> <span id="area"> <textarea name="foo1"></textarea> <textarea name="foo2"></textarea> <textarea name="foo3"></textarea> <textarea name="foo4"></textarea> </span><br /> <input type="button" value="追加する" onClick="myTextAreaAdd()"><br /> </form>

専門家に質問してみよう