javascript - 尝试从 vuejs 组件打印时样式参数不适用于 print-js
问题描述
我在print-js 文档中读到,我们可以将样式作为字符串传递给printJS
函数,这样我们传入的样式就会被应用,但是我遇到了一个不允许打印发生的错误:
我收到此错误:ReferenceError: Can't find variable: style
我正在像这样在 vue 组件中将样式传递给 printJS
printSlip: function(){
printJS('printSlip', 'html', style="display: inline-block; text-align: center; padding: 30px; margin: 15px; text-align: center; padding: 15px; vertical-align: top;");
},
解决方案
正如 Husan Ibrahim 已经回答的那样,要使用style
参数,您需要使用对象语法。Husan 错过的是,该style
参数期望您定位应该应用样式的位置。
传递display: inline-block; text-align: center; padding: 30px; margin: 15px; text-align: center; padding: 15px; vertical-align: top;
时,浏览器将不知道要应用样式的元素。
假设您想将其应用于身体,这将是有效的body { display: inline-block; text-align: center; padding: 30px; margin: 15px; text-align: center; padding: 15px; vertical-align: top; }
这是一个示例传递样式以应用于my-element1
and my-element2
:
printSlip() {
printJS({
printable: 'printSlip',
type: 'html',
style: '#my-element1 { color: blue; } #my-element2 { color: red; }'
})
}
传递自定义样式的实时示例: https ://codesandbox.io/s/x72j429vr4
推荐阅读
- android-recyclerview - recyclerView 中的 Exoplayer 出现内存不足异常
- python - ValueError:对已关闭文件的 I/O 操作。-- For 循环
- azure - 无法批量加载,因为无法打开文件“File.csv”。操作系统错误代码 5(访问被拒绝。)
- firebase - 在 Firebase 中验证电子邮件时的日志分析事件
- kubernetes - 学习kubernetes的范围是什么?
- reactjs - 如何在 React 中使用 Typescript 分配变量之前声明一个变量,而没有“类型中缺少索引签名”错误
- docker - hyperledger fabric byfn.sh up 失败,脚本 scripts.sh 未找到
- php - 数组中的逗号分隔值
- android - 房间数据库类初始化
- ios - 无法在 UIViewController 中向 UIImageView 添加渐变