レ IFRAMEの表示データをクリップボードへコピーし、IFRAMEにペーストする方法|
レ FRAMEの表示データをクリップボードへコピーし、TEXTAREAにペーストする方法
「IFRAME データ コピー」などでyahoo検索すると、いくつかのサイトでつぎのjavascriptコードを見つけることができます。
下のコードは、iframe(ifm1)からiframe(ifm2)へ、1ステップでコピー&ペーストするコードです。
このコードを使用すると、IFRAMEの内容を丸ごと完全コピー&ペーストできます。
jQuery(function($){ $('#button1').click(function(){ document.getElementById('div2-ifm').innerHTML = document.getElementById('div1-ifm').innerHTML; //DIV参照 }); });
<div id="" style="display:inline-block;width:350px"> ・Iframe1<br> <div id="div1-ifm"><iframe id="ifm1-ifm" src="http://urbanqee.com/doga/35k-story01.html" width=350></iframe></div> </div> <div id="" style="display:inline-block;width:350px;margin-left:10px"> ・Iframe2<br> <div id="div2-ifm"></div> </div> <br> <small>Iframe1からIframe2へ </small><button id="button1">COPY&PASTE</button>
このコードを使用すると、IFRAMEに表示されているテキスト文字のみコピー&ペーストします。したがい、画像はコピーできません。
jQuery(function($){ $('#button2').click(function(){ $('#ifm2').contents().find('body').html($('#ifm1').contents().find('body').html()); }); });
<div style="display:inline-block;width:350px"> ・Iframe1<br><iframe id="ifm1" src="iframe-data.txt" width=350></iframe><br> </div> <div style="display:inline-block;width:350px;margin-left:10px"> ・Iframe2<br><iframe id="ifm2" width=350></iframe><br> </div><br> <small>Iframe1からIframe2へ </small><button id="button1">COPY&PASTE</button> <br> </div>
以下に、1ステップの「その2、直接IFFRAMEをコピー&ペーストするjQueryコード」コピー&ペーストの動作を、コピーとペーストを分けて行う方法について説明します。
コピーとペーストを分けることにより、手動でペースト(貼り付け)が可能になります。
なお、iframeからのコピーは画像はコピーできません。
1ステップでコピー&ペーストするjQueryコード $('#ifm2').contents().find('body').html($('#ifm1').contents().find('body').html())
から、
IFRAMEの表示データをクリップボードへコピーし、IFRAMEにペーストする方法および手順について説明します。
なお、IFRAMEの表示データを直接クリップボードへコピーすることができません。
このため、IFRAMEの表示データをTEXTAREAへコピー&ペーストし、そのTEXTAREAのデータをクリップボードへコピーします。
1ステップでコピー&ペーストするjQueryコードから、IFRAMEの表示データを参照するコードは、
$('#iframe ID名').contents().find('body').html
であることが読み取れます。
下に示すとおり、青字のコードがペースト側、赤字のコードはコピー側を参照しています。
$('#ifm2').contents().find('body').html($('#ifm1').contents().find('body').html())
IFRAME表示データをクリップボードへコピーし、IFRAMEにペーストするHTMLおよびjavascriptコードはつぎのとおりです。
・HTML<!--Iframe1-->
<iframe id="ifm1" src="iframe-src-text.html"></iframe><br>
<!--Iframe2-->
<iframe id="ifm2"></iframe><br>
<!--Textarea(退避域)-->
<textarea id="textarea1" style="visibility:hidden"></textarea>
let inifm = $('#ifm1').contents().find('body').html(); //iframe1からデータ取得(コピー)
document.getElementById("textarea1").style.visibility ="visible"; //退避域のtextareaを表示する
document.getElementById("textarea1").value = inifm; //コピー内容をtextareaへ退避
var copyText = document.querySelector('#textarea1'); //コピー内容のtextareaデータ取得
copyText.select(); //取得コピー内容の選択
if(document.execCommand('copy')) { //コピー内容をクリップボードへコピー
//alert('クリップボードにコピーしました.');
} else {
//alert('Ctrl+Cを押してください.');
}
document.getElementById("textarea1").style.visibility ="hidden"; //退避域のtextareaを非表示にする
$('#ifm2').contents().find('body').html(inifm); //iframe2へデータ貼り付け(ペースト)***
上記の「IFRAMEの表示データをクリップボードへコピーし、IFRAMEにペーストするコード」をコピー(下赤字部分)して、
つぎの2つのサンプルHTMLを作成しました。
このまとめサンプルHTMLおよびまとめサンプルデモを下に示します。
<!DOCTYPE HTML>
<html lang="ja">
<head>
<title>IFRAMEからIFRAMEへコピー&ペーストサンプル</title>
<!-- jQuery -->
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
<h2>IFRAMEの表示データをクリップボードへコピし、IFRAMEにペーストするHTMLサンプルデモ</h2>
<DIV>
<div style="display:inline-block">
<p>・Iframe1</p>
<iframe id="ifm1" src="iframe-src-text.html"></iframe>
</div>
<div style="display:inline-block;margin-left:20px">
<p>・Iframe2</p>
<iframe id="ifm2"></iframe>
</div>
</DIV>
<p style="margin-left:260px">
<button>COPY&PASTE</button><br>
</p>
<p>・コピー内容確認域</p>
<textarea id="texsta" name="kanso" cols="40" rows="4">
ここに貼り付けて確認してください!</textarea>
<br><br>
・Textarea(コピー内容退避域は非表示)<br>
<textarea id="textarea1" style="visibility:hidden"></textarea>
<hr>
@urbanqee.com 2021.3.29
<script>
$(function(){
$('button').click(function(){
let inifm = $('#ifm1').contents().find('body').html(); //iframe1からデータ取得(コピー)***
//alert(inifm);
document.getElementById("textarea1").style.visibility ="visible"; //退避のtextareaを表示する
document.getElementById("textarea1").value = inifm; //コピー内容をtextareaへ退避
var copyText = document.querySelector('#textarea1'); //コピー内容のtextareaデータ取得
copyText.select(); //取得コピー内容の選択
if(document.execCommand('copy')) { //コピー内容をクリップボードへコピー
alert('クリップボードにコピーしました.');
} else {
alert('Ctrl+Cを押してください.');
}
document.getElementById("textarea1").style.visibility ="hidden"; //退避のtextareaを非表示にする
$('#ifm2').contents().find('body').html(inifm); //iframe2へデータ貼り付け(ペースト)***
});
});
</script>
</body>
</html>
<!DOCTYPE HTML>
<html lang="ja">
<head>
<title>IFRAMEの表示データをクリップボードへコピーするサンプル</title>
<!-- jQuery -->
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
<h3>IFRAMEの表示データをクリップボードへコピーするHTMLサンプルデモ</h3>
<DIV>
<div style="display:inline-block">
<p>・Iframe1</p>
<iframe id="ifm1" src="iframe-src-text.html"></iframe>
</div>
<div style="display:inline-block;margin-left:20px">
<p>・Iframe2(未使用、ペーストなし)</p>
<iframe id="ifm2"></iframe>
</div>
</DIV>
<p style="margin-left:100px">
<button>COPY</button><br>
</p>
<p>・コピー内容確認域</p>
<textarea id="texsta" name="kanso" cols="40" rows="4">
ここに貼り付けて確認して下さい!</textarea>
<br><br>
・Textarea(コピー内容退避域は非表示)<br>
<textarea id="textarea1" style="visibility:hidden"></textarea>
<hr>
@urbanqee.com 2021.3.29 <a href="../iframe-clipboard-copypaste-top.html" target="_blank" title="このページのTOPへ">TOPへ</a>
<script>
$(function(){
$('button').click(function(){
let inifm = $('#ifm1').contents().find('body').html(); //iframe1からデータ取得(コピー)***
//alert(inifm);
document.getElementById("textarea1").style.visibility ="visible"; //退避のtextareaを表示する
document.getElementById("textarea1").value = inifm; //コピー内容をtextareaへ退避
var copyText = document.querySelector('#textarea1'); //コピー内容のtextareaデータ取得
copyText.select(); //取得コピー内容の選択
if(document.execCommand('copy')) { //コピー内容をクリップボードへコピー
alert('クリップボードにコピーしました.');
} else {
alert('Ctrl+Cを押してください.');
}
document.getElementById("textarea1").style.visibility ="hidden"; //退避のtextareaを非表示にする
//$('#ifm2').contents().find('body').html(inifm); //iframe2へデータ貼り付け(ペースト)***
});
});
</script>
</body>
</html>
上記その2、直接IFFRAMEをコピー&ペーストするjQueryコードから、IFRAMEの表示データをクリップボードへコピーし、IFRAMEにペーストするサンプルHTMLについて つぎのとおりまとめました。
<!DOCTYPE HTML>
<html>
<head>
<title>IFRAME(HTMLページ)の表示データをクリップボードへコピーし、TEXTAREAにペーストする</title>
<!-- jQuery -->
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
<h3>IFRAME(HTMLページ)の表示データをクリップボードへコピーし、TEXTAREAにペーストするデモ</h3>
<p>・IFRAME - COPY</p>
<iframe id="ifm1" src="http://urbanqee.com/doga/35k-story01.html" title="対象データfrom"></iframe><br>
<p>・TEXTAREA - PASTE</p>
<textarea id="textarea1" name="kanso" cols="40" rows="10" title="対象データto"></textarea>
<p><small>IFRAMEからTEXTAREAへ</small> <button>COPY&PASTE</button></p>
<hr>
(c)urbanqee.com 2021.3.2
<script>
jQuery(function($){
$('button').click(function(){
//$('#ifm2').contents().find('body').html($('#ifm1').contents().find('body').html());
//iframeの値を取得
var inifm = $('#ifm1').contents().find('body').html();
alert(inifm);
//値をtextareaへ設定
document.getElementById("textarea1").value = inifm;
var copyText = document.querySelector('#textarea1');
copyText.select();
if(document.execCommand('copy')) {
alert('クリップボードにコピーしました.');
} else {
alert('Ctrl+Cを押してください.');
}
});
});
</script>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<title>IFRAME(HTMLソースコード)の表示データをクリップボードへコピーし、TEXTAREAにペーストする</title>
<!-- jQuery -->
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
<h3>IFRAME(HTMLソースコード)の表示データをクリップボードへコピーし、TEXTAREAにペーストするデモ</h3>
<p>・IFRAME - COPY</p>
<iframe id="ifm1" src="iframe-src-htmlcode.txt" title="対象データfrom"></iframe><br>
<p>・TEXTAREA - PASTE</p>
<textarea id="textarea1" name="kanso" cols="40" rows="10" title="対象データto"></textarea>
<p><small>IFRAMEからTEXTAREAへ</small> <button>COPY&PASTE</button></p>
<hr>
(c)urbanqee.com 2021.3.2
<script>
jQuery(function($){
$('button').click(function(){
//$('#ifm2').contents().find('body').html($('#ifm1').contents().find('body').html());
//iframeの値を取得
var inifm = $('#ifm1').contents().find('body').html();
alert(inifm);
//値をtextareaへ設定
document.getElementById("textarea1").value = inifm;
var copyText = document.querySelector('#textarea1');
copyText.select();
if(document.execCommand('copy')) {
alert('クリップボードにコピーしました.');
} else {
alert('Ctrl+Cを押してください.');
}
});
});
</script>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<title>IFRAME(文字のみ)の表示データをクリップボードへコピーし、TEXTAREAにペーストする</title>
<!-- jQuery -->
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
<h3>IFRAME(文字のみ)の表示データをクリップボードへコピーし、TEXTAREAにペーストするデモ</h3>
<p>・IFRAME - COPY</p>
<iframe id="ifm1" src="iframe-src-text.html" title="対象データfrom"></iframe><br>
<p>・TEXTAREA - PASTE</p>
<textarea id="textarea1" name="kanso" cols="40" rows="10" title="対象データto"></textarea>
<p><small>IFRAMEからTEXTAREA</small>へ <button>COPY&PASTE</button></p>
<hr>
(c)urbanqee.com 2021.3.2
<script>
jQuery(function($){
$('button').click(function(){
//iframeの値を取得
var inifm = $('#ifm1').contents().find('body').html();
alert(inifm);
//値をtextareaへ設定
document.getElementById("textarea1").value = inifm;
var copyText = document.querySelector('#textarea1');
copyText.select();
if(document.execCommand('copy')) {
alert('クリップボードにコピーしました.');
} else {
alert('Ctrl+Cを押してください.');
}
});
});
</script>
</body>
</html>
IFRAMEの表示データをクリップボードへコピーし、IFRAMEにペーストする方法|IFRAMEの表示データをクリップボードへコピーし、TEXTAREAにペーストする方法 |TOP
最終更新日:2021. 3.21(初版) |