私は自分のプロジェクトで印刷を使用しています(HTMLとjavascriptの使用)。 mozilla onbeforeprintとonafterprintは正常に動作していますが、クロムでは動作しません。onbeforeprintとonafterprintはChromeとIEでは動作していませんか?
答えて
Chrome doesn't have onbeforeprint.
これを行うための好ましい方法はprint media specific stylesheetsを使用することです。
あなたが絶対にPrint operations with javascript cross browserを検出する必要がある場合、これは有望に見えますが、私はそれを自分で試していません。
これは私の人生、感謝ライアンを救った。 私はページ印刷のために@media print {...}を使用していましたが、何とかCSSが無視されていたので、私はjsの方法でやります。これは私の魅力のように働いた。 –
In Chromeでは、前回の印刷時に& onAfterPrintが動作しません。
しかし、あなたはこのCSSは、ページのヘッダーに含まれているCSSの印刷メディア
例
<link rel="stylesheet" href="print.css" type="text/css" media="print" />
を使用して印刷ページを制限することができます。クロームのために働く何
CSSた次のスタイル
#header, #menu, #entry-content, .noprint {display: none;}
は、のように '窓' の 'matchmedia' をチェックすることです:
if ('matchMedia' in window) {
window.matchMedia('print').addListener(function (media) {
//do before-printing stuff
});
} else {
window.onbeforeprint = function() {
//do before-printing stuff
}
}
文書が印刷されるとき(addListenerを使用して)リスナーが2回トリガーされるようです。 media引数はタイムスタンプを除いて2つの呼び出しであまり変わらないようです... –
media.matchesは印刷前には 'true'、それ以降はfalseになります。 – sabof
Chromeはこれらのイベントをサポートしていません。代わりに 'window.matchMedia'をサポートしています。また、すべてのページを印刷できないようにするbug in Chromeもあります。このため、ウェブページに印刷ボタンを追加して、Chromeメニューから印刷する代わりにボタンを使用するようユーザーに依頼することをおすすめします。
var beforePrint = function() {
console.log("before");
};
var afterPrint = function() {
console.log("after");
};
var launchedFromMenu = true;
if (window.matchMedia) {
var mediaQueryList = window.matchMedia('print');
mediaQueryList.addListener(function(mql) {
if (mql.matches) {
if(launchedFromMenu) {
// https://bugs.chromium.org/p/chromium/issues/detail?id=571070
alert("There is a bug in Chrome/Opera and printing via the main menu does not work properly. Please use the 'print' icon on the page.");
}
beforePrint();
} else {
afterPrint();
}
});
}
// These are for Firefox
window.onbeforeprint = beforePrint;
window.onafterprint = afterPrint;
function printPage() {
window["beforePrint"]();
launchedFromMenu = false;
window.print();
}
クイック更新、印刷イベントhas improved a lot
- のサポートクローム63は、2017年12月中のリリースでは、それをサポートしているので、source
- オペラ50と同様
- エッジが始まり ので、それをサポートしています
- IE(6!)の古いバージョン6でもサポートしています
- 1. .htaccessはChrome/IE/Operaで動作していませんか?
- 2. JavascriptのオートコンプリートはIEとChromeで動作し、Firefoxでは動作しません
- 3. jQuery load()はIEとChromeで動作しません
- 4. jQueryはIEでは動作しますがChromeでは動作しません
- 5. TwitterフィードJSはFirefoxとChromeで動作しますが、IEでは動作しません。何か案は?
- 6. JavaScriptはIEとEdgeで動作しますが、ChromeとFirefoxでは動作しません
- 7. Chromeでは動作しますが、FirefoxやIEでは動作しません。
- 8. IEとChromeでローダーが動作しません
- 9. ASP.NET認可はChrome、IE、Operaでは動作しません
- 10. javascript show/hideはFirefoxとIEで動作していません
- 11. JavascriptはFirefoxとIEでは動作しますがChromeでは動作しません
- 12. JqueryのエクスポートオプションはChromeとFirefoxでは動作しますがIEでは動作しません
- 13. Angular2アプリはChromeとIEでは動作しますが、FirefoxやSafariでは動作しません。
- 14. Mediaelement.js wordpressプラグインはSafariとChromeでは動作しますがIEやFirefoxでは動作しません
- 15. jQuery UIのdroppableはIEとFirefoxでは動作しません(ただしChromeで動作します)
- 16. CSSドロップダウンメニューはMozilla、Chromeでは動作していますが、IEでは動作しません
- 17. Jquery ToggleはIE/Chromeで動作しません。
- 18. ajaxはfirefoxとchromeで動作しますが、ieでは動作しません。
- 19. jqueryコードはFirefoxで動作しますが、ChromeとIE 8では動作しません。
- 20. JQueryはIEでは動作しませんが、ChromeとFirefoxで動作します
- 21. モーダルはFirefoxとIEで動作しますが、Chromeでは動作しません
- 22. JavaScript関数とデフォルトパラメータ、IEで動作していないとChrome
- 23. JavaScriptのinnerHTMLはIEでは動作していませんか?
- 24. XpathセレクタがIEでは動作しませんが、ChromeとFirefoxで正常に動作します
- 25. ブラウザの独立性の問題コードIEで動作しますが、FirefoxとChromeでは動作しません
- 26. IEで動作していません
- 27. onchangeはIEでは動作しませんが、ChromeとFFで完全に起動します
- 28. OnClick DropdownはFireFoxでは動作しますが、ChromeやIEでは動作しませんか?
- 29. Extjs xmlグリッドはchrome、safari、mozilla firefoxでは動作しませんがIEでは動作しますか?
- 30. Facebook Request Dialog Chromeで動作していてもIEでは動作しません
Chrome [これらのイベントはサポートされていないようです](https://developer.mozilla.org/en-US/docs/DOM/window.onbeforeprint#Browser_compatibility) – pimvdb
@pimvdbどうすればこれらのイベントをクロムで達成できますか?クロムに相当するイベントはありますか? –