昔、このサイト(https://oshiete.goo.ne.jp/qa/5902577.html)で教えていただいた
「一行テキストフォームの値をクリップボードにコピーするボタン」が、
最新のIE11やFireFox39で動作しません。
IE11でIE8モードにエミュレーションすると動作します。
どこを直せばいいでしょうか・・・・
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javascript">
<!--
document.onclick = function (evt) {
var e = evt ? evt.target: event.srcElement,c = 0, cols, o;
if (/TD/.test(e.nodeName)) while (o = e.parentNode.cells[c++]) o.className = o.className ? '': 'hlcheck';
}
function valcng(e) {
var i=0, s, sel = e.form.getElementsByTagName("select");
while (s=sel[i++]) if (s.name == e.name && s != e) s.selectedIndex = e.selectedIndex;
}
//-->
</script>
</head>
<body>
<table border="1" id="target_table">
<tr>
<td>1</td>
<td>※</td>
<td>1年生</td>
<td>佐藤太郎</td>
<td>経済学部</td>
<td><input type="checkbox" name="photo[]" value="1" checked>
<td><input type="checkbox" name="papar[]" value="1">
<td><input size="10" value="佐藤太郎">
<input type="button" name="Copy" value="コピー"></td>
</tr>
<tr class="hl">
<td>2</td>
<td>○</td>
<td>4年生</td>
<td>鈴木次郎</td>
<td>法学部</td>
<td><input type="checkbox" name="photo[]" value="3">
<td><input type="checkbox" name="papar[]" value="3">
<td><input size="10" value="鈴木次郎">
<input type="button" name="Copy" value="コピー"></td>
</tr>
</table>
</form>
<script type="text/javascript" charset="utf-8">
<!--
var table=document.getElementById("target_table");
var btns=document.getElementsByName("copy");
for (var i=0; i< btns.length; i++) {
btns[i].onclick=(function(table){return function(e) {
var t = e?e.target:event.srcElement;
var target=table.rows[t.parentNode.parentNode.rowIndex].cells[7].firstChild;
var copy_obj=target.createTextRange();
copy_obj.execCommand("Copy")
target.select();
}})(table);
}
// -->
</script>
</center>
</body>
</html>
No.1ベストアンサー
- 回答日時:
最近のIEはクリップボードを操作できるようになったみたいですね
環境をしぼっていいなら
window.clipboardData.setData()
などでコピーすればよいでしょう
その他のブラウザに関しては以前も書いたみたいですが
flashなどを利用したzeroclipboardなどのライブラリを使うのが
一般的みたいですよ
あとは最近HTML5にclipboard APIが用意されいたりとか
yamabejpさん、ありがとうございます。
自分のIE11でだけ動作すれば十分ですが、仰せのwindow.clipboardData.setData()を、
http://www.openspc2.org/reibun/javascript/specia …など参考に動作できました。
ただ、複数行があるため1行目のボタン押下で、2行目鈴木がクリップボードに送られてしまいます。
getElementsByNameとか、難しいコードを導入せざるを得ないでしょうか?
<script Language="JavaScript"><!--
function setCB()
{
txt = document.xForm.result.value;
window.clipboardData.setData("text",txt);
}
// --></script>
<form name="xForm">
<table border="1" id="target_table">
<tr>
<td><input type="checkbox" name="photo[]" value="1">
<td><input type="checkbox" name="papar[]" value="1">
<td><input value="佐藤">
<input type="button" name="Copy" value="コピー" name="result" onclick="setCB()"></td>
</tr>
<tr>
<td><input type="checkbox" name="photo[]" value="3">
<td><input type="checkbox" name="papar[]" value="3">
<td><input value="鈴木" name="result">
<input type="button" name="Copy" value="コピー" onclick="setCB()"></td>
</tr>
</table>
</form>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript javascriptでテーブルに追加した項目のid追加してローカルストレージを操作したい 5 2023/01/01 15:52
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字数を数える際に空白、改行...
-
画面表示とともにtableの指定の...
-
Selectボックスの幅を自動で広...
-
javascript作成してます。ラジ...
-
Pythonで会員サイトの自動ログ...
-
現在時刻を取得してフォームのs...
-
特定<table>内の<td>の色を変える
-
hiddenのvalueの値を変えたい
-
ラジオボタンにタブインデック...
-
javascriptで入力禁止文字をチ...
-
jspでのArrayListの値の表示
-
return trueとreturn falseの用...
-
【UWSC】HTML内のある部分を抽...
-
クリックさせたいが、click()が...
-
正規表現で複数マッチ条件で悩...
-
onchangeイベントを強制的に発...
-
数値の掛け算の不具合について
-
全てのselect要素をデフォルト...
-
追加ボタンを押した際に ok ボ...
-
VBSでブラウザ上のテキストボッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JavaScriptの「.querySelectorA...
-
チェックボックス付きのテーブ...
-
複数のselect値で1つも選択され...
-
ラジオボタンが選択されたらテ...
-
入力チェックの外部スクリプト...
-
Javascriptの電卓で最初の何も...
-
文字数を数える際に空白、改行...
-
画面の2重起動をチェックする...
-
画面表示とともにtableの指定の...
-
jQueryで合計を出したい
-
localStorageでのcheckbox制御
-
JavaScriptによる自動計算フォーム
-
同一nameの input type="text"...
-
テーブル内のチェックボックス...
-
formで項目を連結したい
-
クリックしたラジオボタンの行...
-
Javascriptで自動計算の合計の...
-
テーブル内のチェックボックス...
-
ボタン押下すると一行テキスト...
-
JavaScriptで、コピーボタンを...
おすすめ情報