4

クリックすると印刷機能を呼び出す簡単な印刷オプションを実行しています。この関数は、関連する (すべてではない) html をコピーします。

function print() {

var printWindow = window.open("", "Print", "status=no, toolbar=no, scrollbars=yes", "false" );
var toInsert = $("div.book").html();
$(printWindow.document.body).html(toInsert);

}

私が抱えている問題は、この新しいウィンドウが、フォルダー内にある css スタイルシートまたは写真を参照できないように見えることです。何か案は?css の問題だけに焦点を当てると<link ... />、新しいウィンドウの先頭に a を挿入することは可能でしょうか?

ありがとう!

4

3 に答える 3

3
function Print() {
    var printWindow = window.open("", "Print", "status=no, toolbar=no, scrollbars=yes", "false" );
    $("link, style, script").each(function() {
       $(printWindow.document.head).append($(this).clone())
    });
    var toInsert = $("div.book").html();
    $(printWindow.document.body).append(toInsert);​
}

デモ

于 2012-07-26T23:06:18.740 に答える
3

まったく新しいウィンドウです。独自のCSSなどが必要です。

ドキュメントを書き込むときは、<link>タグ、<script>タグ、およびその他すべてを書き込む必要があります。

于 2012-07-26T22:57:02.817 に答える
0

既存の CSS スタイルシートへのリンクを新しいウィンドウの先頭に動的に挿入するには、これでうまくいきました。

var cssNode = document.createElement('link');
cssNode.type = 'text/css';
cssNode.rel = 'stylesheet';
cssNode.href = 'http://www.somedomain.com/styles/FireFox.css';
cssNode.media = 'screen';
cssNode.title = 'dynamicLoadedSheet';
printWindow.document.getElementsByTagName("head")[0].appendChild(cssNode);

出典: Javascript を使用した Totally Pwn CSS - スタイルシートの直接操作に関するその他の興味深いトリックがあります。

于 2014-08-19T16:06:35.990 に答える