From 209d76a0dd38460a1b3163756d7ac3f2eec0c74f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?ren=2Ejessica/=E4=BB=BB=E5=AE=9B=E5=90=9B=5F=E6=B2=AA=5F?= =?UTF-8?q?=E5=BC=80=E5=8F=91?= Date: Fri, 9 Sep 2022 10:44:28 +0800 Subject: [PATCH 1/3] =?UTF-8?q?Add=20=E2=80=98event=20named=20'onAfterPrin?= =?UTF-8?q?t'=20to=20iframeElement.contentWindow?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 4 ++-- src/js/init.js | 1 + src/js/print.js | 6 ++++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 352da94..225fb7d 100644 --- a/package.json +++ b/package.json @@ -39,8 +39,8 @@ "production": "webpack --mode production --progress --hide-modules", "coverage": "open coverage/lcov-report/index.html", "coveralls": "cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js", - "start": "webpack-dev-server --public http://localhost:8080/test/manual --open", - "standard:fix": "standard --fix" + "start": "webpack-dev-server --public http://localhost:8080/test/manual --open", + "standard:fix": "standard --fix" }, "author": "Rodrigo Vieira ", "standard": { diff --git a/src/js/init.js b/src/js/init.js index bfda427..1dcaa03 100644 --- a/src/js/init.js +++ b/src/js/init.js @@ -28,6 +28,7 @@ export default { onLoadingEnd: null, onPrintDialogClose: () => {}, onIncompatibleBrowser: () => {}, + onAfterPrint: () => {}, modalMessage: 'Retrieving Document...', frameId: 'printJS', printableElement: null, diff --git a/src/js/print.js b/src/js/print.js index e09e69f..7c922ce 100644 --- a/src/js/print.js +++ b/src/js/print.js @@ -59,10 +59,16 @@ function performPrint (iframeElement, params) { try { iframeElement.contentWindow.document.execCommand('print', false, null) } catch (e) { + iframeElement.contentWindow.onafterprint = function (event) { + params.onAfterPrint(event) + } iframeElement.contentWindow.print() } } else { // Other browsers + iframeElement.contentWindow.onafterprint = function (event) { + params.onAfterPrint(event) + } iframeElement.contentWindow.print() } } catch (error) { From e73a3537966dcbd6ea6df2cc5d2bbe7a7c6debbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?ren=2Ejessica/=E4=BB=BB=E5=AE=9B=E5=90=9B=5F=E6=B2=AA=5F?= =?UTF-8?q?=E5=BC=80=E5=8F=91?= Date: Fri, 17 Mar 2023 11:02:46 +0800 Subject: [PATCH 2/3] fix merge conflixs --- src/js/print.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/js/print.js b/src/js/print.js index 7c922ce..9220480 100644 --- a/src/js/print.js +++ b/src/js/print.js @@ -57,17 +57,20 @@ function performPrint (iframeElement, params) { // If Edge or IE, try catch with execCommand if (Browser.isEdge() || Browser.isIE()) { try { + iframeElement.contentWindow.onafterprint = function (event) { + params.onAfterPrint.call(this,event) + } iframeElement.contentWindow.document.execCommand('print', false, null) } catch (e) { iframeElement.contentWindow.onafterprint = function (event) { - params.onAfterPrint(event) + params.onAfterPrint.call(this,event) } iframeElement.contentWindow.print() } } else { // Other browsers iframeElement.contentWindow.onafterprint = function (event) { - params.onAfterPrint(event) + params.onAfterPrint.call(this,event) } iframeElement.contentWindow.print() } From d23f65f160bb5104c246a4ddceca437512ec17cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?ren=2Ejessica/=E4=BB=BB=E5=AE=9B=E5=90=9B=5F=E6=B2=AA=5F?= =?UTF-8?q?=E5=BC=80=E5=8F=91?= Date: Fri, 17 Mar 2023 13:08:26 +0800 Subject: [PATCH 3/3] fix merge conflixs --- src/js/print.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/js/print.js b/src/js/print.js index 9220480..9f19aaa 100644 --- a/src/js/print.js +++ b/src/js/print.js @@ -62,17 +62,21 @@ function performPrint (iframeElement, params) { } iframeElement.contentWindow.document.execCommand('print', false, null) } catch (e) { + setTimeout(function(){ + iframeElement.contentWindow.onafterprint = function (event) { + params.onAfterPrint.call(this,event) + } + iframeElement.contentWindow.print() + },1000) + } + } else { + // Other browsers + setTimeout(function(){ iframeElement.contentWindow.onafterprint = function (event) { params.onAfterPrint.call(this,event) } iframeElement.contentWindow.print() - } - } else { - // Other browsers - iframeElement.contentWindow.onafterprint = function (event) { - params.onAfterPrint.call(this,event) - } - iframeElement.contentWindow.print() + },1000) } } catch (error) { params.onError(error)