• 締切済み

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

現在は下記のようにクリップボードへのコピーボタンを つくっています 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>にクリップボードにコピーできる ボタンをつけたいのですが、 単純に上記のものを複数つくると、ソースやファイルが 増えてしまいます。 シンプルな記述方法はないものかと 模索中です。ご存知の方いらっしゃいましたら ご教授ください。

みんなの回答

  • KanjiTalk
  • ベストアンサー率30% (7/23)
回答No.1

function copyFrom(textarea) { if (document.all && navigator.userAgent.match(/windows/i) && document.obj.area.value) { copy_obj = document.obj[textarea].createTextRange() copy_obj.execCommand("Copy") alert("クリップボードにコピー完了"); } } <input type=button onclick="copyFrom('area')" value="コピー"> のようにコピー先のテキストエリアの名前を渡してやればどうでしょう。 オブジェクト名["プロパティ名"] でもオブジェクトのプロパティを参照できます。 テストはしていないので、試してみて下さい。

etu007
質問者

お礼

まだ解決にはいたっていませんが、もう少し考えてみます。 ありがとうございました

etu007
質問者

補足

回答ありがとうございます。 もしかしたら自分の基本がなっていないのかもしれません。 うまく作動せずに難儀しております。 外部ファイルにしているせいでしょうか…

関連するQ&A

  • textareaからiframeにしたら動作せず

    以下のJSで、iframeがtextareaのときはうまくコピーできたのですが iframeにしたらテキストのコピーと選択ができなくなりました。 IEで動作すれば十分ですが、コピーはどうやってやればいいでしょうか? <html> <head> <script> 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("クリップボードにコピーしました"); } } </script> </head> <body> <form method="get" action="txt_list.php" target="area" name="obj"> <iframe src="txt_list.php" name="area"> この部分は iframe 対応のブラウザで見てください。 </iframe> <input type="button" onClick="obj.area.select(); clip_copy();" value="コピー" style="font-size: 20pt;"> </form> </body> </html>

  • コピーすると改行コードがCRとなってしまう。

    下記のものでコピーすると、改行コードがWINDOWSのものではなくCRとなってしまいます。 WINDOWSの改行コードでコピーするにはどうすればよいでしょうか? <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>コピー</title> <script> function clip_copy(p) { if (document.all && navigator.userAgent.match(/windows/i)) { copy_obj = document.obj.copy[p - 1].createTextRange() copy_obj.execCommand("Copy") } } </script> </head> <body> <p>ボタンのみの表示で隠しフォーム(hidden)の内容をクリップボードにコピーする</p> <form name=obj> <input type=hidden name=copy value="aaa bbb ccc"> <input type=button onClick="clip_copy(1)" value="項目1をクリップボードにコピー"><br> <input type=hidden name=copy value="ddd eee fff"> <input type=button onClick="clip_copy(2)" value="項目2をクリップボードにコピー"><br> <input type=hidden name=copy value="ggg hhh iii"> <input type=button onClick="clip_copy(3)" value="項目3をクリップボードにコピー"> </form> </body> </html>

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

    アプリを使わずウェブ上で、スマートフォンの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で組んでいるサイトも見てみたのですが、 やはりスマートフォンでは自分で範囲を選択してコピーを選ぶという手間をしない限り、 コピーすることが出来ず、私の知識では解決に及びませんでした。 スマートフォンのクリップボードに文字をさせるもしくは不可能かどうかをご存知でしたら、 アドバイスいただけると助かります。 よろしくおねがいします。

  • 1ページにコピーするボタンを数個つけたい

    JavaScript~サンプル置き場というサイトからコピーしたのですが、 1ページに5~6個テキストフォームとコピーするのボタンをつけたいのですが、どこを変えたらよいかわかりません??? 解る方がいたらよろしくお願いします。 <SCRIPT LANGUAGE="JavaScript"> <!-- var CYA=1 function HantenC(InTA) { var nobTP=eval("document."+InTA) nobTP.focus() nobTP.select() if (document.all&&CYA==1){ therange=nobTP.createTextRange() therange.execCommand("Copy") window.status="Contents highlighted and copied to clipboard!" setTimeout("window.status=''",1800) }} //--> </SCRIPT> <DIV ALIGN=CENTER><FONT SIZE=6><B>コピーをする</B><FONT> <HR SIZE=3 WIDTH=80% COLOR="#0000ff"><BR> <FORM name=test> <INPUT onclick="javascript:HantenC('test.select1')" type=button value=ソースコピー> <BR><BR> <TEXTAREA name=select1 rows=5 cols=45>Copyボタンを押すとTextareaの中身がコピーされます</TEXTAREA> <BR><BR> </DIV>

  • ボタンを押下するとテキストフォームの値をクリップボードに送る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>

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

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

  • 「ソースをクリップボードにコピー」

    無料のカレンダー自動作成ソフトがネット上で提供されていまして、 「ソースをクリップボードにコピー」というボタンをクリックすると、 文字通り、ソースがクリップボードにコピーされているのでしょうけれど、 「スタート」⇒「アクセサリ」⇒「システムツール」⇒「クリップボードビューア」という箇所までたどり着いたのですが、 ここから先、どうすればいいのか分かりません。 こちらとしては、 「HTMLソースがどこかに記載されているはずだから、 それを、右クリックでコピーして、希望の場所へ貼り付けよう!!」 と考えていたのですが、 上記のようにその先の作業が分かりません。 どうすればHTMLソースをコピーして貼り付けることが出来るのですか?

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

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

  • .phpで"クリップボードにコピー"ボタンを作る

    .php形式のファイルで、textarea内の文字列をクリップボードにコピーするボタン(画像をボタンにしている)を作りたいのですが、 調べて色々な方法を試してみても上手くいきません;; どなたか良い方法をご存知の方、ご教授願います。

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

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

専門家に質問してみよう