gpt4 book ai didi

javascript - 显示在移动浏览器中打印页面时出现问题,移动浏览器不支持使用 reactjs 的 window.print

转载 作者:行者123 更新时间:2023-12-05 04:29:14 26 4
gpt4 key购买 nike

打印预览在桌面 chrome 浏览器中打开,但在移动浏览器中未打开。它显示打印页面时出现问题。如果我使用此代码,它在移动浏览器中不起作用,它显示打印页面存在问题。但它在桌面上工作

print() {

var print = window.open("", "", "left=0,top=0,width=800,height=500, scrollbars=1");

var pcontents= this.state.print;

// In this.state.print am getting response from api with html tags like header and paragraph tags

print.focus();

print.document.write(pcontents);

print.document.close();

print.print();

print.close();

}

最佳答案

为您的 print.close() 添加超时功能,以便您允许手机上的打印服务在页面关闭之前获取数据。

它应该看起来像这样:

print.print();
setTimeout(function (){
print.close();
}, 2000);

2000 是延迟的时间(以毫秒为单位)。如果您的打印服务速度很慢,那么这也不起作用。

您可以做的是在打印完成后手动调用 print.close(),方法是在事件发生后调用它。例如,轻扫一下,这样您的窗口上就没有按钮也会被打印出来。

这是滑动检测功能。

document.addEventListener('touchstart', handleTouchStart, false);        
document.addEventListener('touchmove', handleTouchMove, false);

var xDown = null;
var yDown = null;

function getTouches(evt) {
return evt.touches || // browser API
evt.originalEvent.touches; // jQuery
}

function handleTouchStart(evt) {
const firstTouch = getTouches(evt)[0];
xDown = firstTouch.clientX;
yDown = firstTouch.clientY;
};

function handleTouchMove(evt) {
if ( ! xDown || ! yDown ) {
return;
}

var xUp = evt.touches[0].clientX;
var yUp = evt.touches[0].clientY;

var xDiff = xDown - xUp;
var yDiff = yDown - yUp;

if ( Math.abs( xDiff ) > Math.abs( yDiff ) ) {/*most significant*/
if ( xDiff > 0 ) {
/* right swipe */
} else {
/* left swipe */
}
} else {
if ( yDiff > 0 ) {
/* down swipe */
} else {
/* up swipe */
}
}
/* reset values */
xDown = null;
yDown = null;
};

关于javascript - 显示在移动浏览器中打印页面时出现问题,移动浏览器不支持使用 reactjs 的 window.print,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72407175/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com