をページ全体を印刷しようとしている私は、IFRAMEのコンテンツ を印刷するにはクリック にイベントに私のhtmlページや印刷ボタンで動的に作成されたが、残念ながら、それは代わりに が、後にページ全体を印刷しIFRAMEをしました長い検索 私はfire printイベントの前にiframeにフォーカスを当てるようないくつかの解決策を見つけましたが、IEとMS Edgeでは動作しないようです Chromeで動作します 私にとっては唯一の解決策は新しいウィンドウとコピーを開くことです新しいウィンドウに読み込まれた内容の後にiframe outerhtmlとfire printイベントが表示される ユーザーが印刷またはキャンセルを行う直後に新しいウィンドウを閉じる iframeの内容を印刷する代わりに
function printIFrameContent()
{
var ua = window.navigator.userAgent;
var msie = ua.indexOf ("MSIE ");
var iframe = document.getElementById("testFrame");
if (msie > 0) {
iframe.contentWindow.document.execCommand('print', false, null);
} else {
iframe.contentWindow.print();
}
}
は呼ば:このソリューションは、ユーザエージェントがIEであればそれはIEでiframeの内容を印刷し、
<html>
<head>
<title>IFrame Printing Issue</title>
<script type="text/javascript">
var g_iFrame;
function onLoad()
{
g_iFrame = document.createElement("iframe");
g_iFrame.id = "testFrame";
var style = g_iFrame.style;
style.border = "1px solid black";
style.width = "300px";
style.height = "200px";
document.body.appendChild(g_iFrame);
}
function setIFrameSrc()
{
g_iFrame.src = "Test.htm";
}
function printIFrameContent()
{
window.frames["testFrame"].contentWindow.focus();
window.frames.testFrame.contentWindow.print();
}
</script>
</head>
<body onload="onLoad();">
<button type="button" onclick="setIFrameSrc();">Set IFrame Src</button>
<br />
<button type="button" onclick="printIFrameContent();">Print IFrameContent</button>
<br />
<div style="border: 1px solid black; width: 300px; height: 200px;">
This is to test printing the content of an IFrame whose src is set dynamically.
</div>
</body>
</html>
IEからテストを開いたときに、このメソッドはIE を識別することができないようです。msieの値が-1のままである –
文字列 "Trident"を使用してIEと'' Eエッジ – User528491
のためのdge "'これはとてもうまく動作します –