2

ここにあるprintThis.jsを使用しています

外部の CSS ファイルを呼び出す機能があります。私が直面している問題は、関数が最初に呼び出されたときに CSS が読み込まれず、出力にスタイルが表示されないことです。2回目は通常動作するので、CSSファイルをプリロードする必要があると思います.

CSS をロードするスクラッチ ページで非表示の iframe を使用しようとしましたが、うまくいきません。現在のページに動的にロードすることはできましたが、ボディなどの要素の設定が重複するとめちゃくちゃになります。

jqueryコードは次のとおりです。

$("#printDiv").printThis({
     debug: false,             
     importCSS: false,          
     importStyle: false,        
     printContainer: true,      
     loadCSS: "css/specialCSS.css", 
     pageTitle: "the page title",      
     removeInline: false,     
     printDelay: 0,           
     header: null,               
     formValues: false          
 });                

$("#print").html("Print");

プラグインに強制的に CSS をプリロードさせる方法はありますか?

4

3 に答える 3

2

私はちょうどこの問題に遭遇しました。ここに私が使用していたコードがあります:

$('selector').printThis({
            loadCSS: "/app/css/printListTable.css",
            header:'<h1>'+$pageTitle+' Table Report</h1>'
        });

ボタンを最初にクリックしたとき、スタイルシートがロードされていなかったため、印刷CSSがロードされていませんでした。アクションボタンをもう一度クリックすると、スタイルが期待どおりに表示されました。の主要な構文がありimportCSS:trueませんでした。これは、ファイルをプリロードすると想定しています。私の更新されたコードは次のようになります。

$('selector').printThis({
                importCSS: true,
                importStyle: true,//thrown in for extra measure
                loadCSS: "/app/css/printListTable.css",
                header:'<h1>'+$pageTitle+' Table Report</h1>'
            });

iframe を介してこの CSS をプリロードしようとすると悪夢になり、このプラグインの基本に反することになります。

于 2017-09-07T15:46:57.563 に答える
0

「loadCSS」パラメータでフルパスを使用してみてください

更新: DevTools (「キャッシュを無効にする」にチェックを入れて) を閉じると、このバグは消えます。F12 を開いた場合 - CSS の読み込みに問題がある

于 2019-06-04T13:26:41.610 に答える