记:打印局部网页,借助iframe的print方法
代码如下
<template>
<div>
<div id="content">
<img src="../assets/logo.png">
<h1>{{ msg }}</h1>
</div>
<iframe id="iframe" style="display: none"></iframe>
<button v-on:click="print">打印</button>
</div>
</template>
<script>
export default {
name: 'HelloWorld',
data () {
return {
msg: 'Welcome to Your Vue.js App'
}
},
methods: {
print: function () {
window.document.querySelector('#iframe')['contentWindow'].document.body.innerHTML = '';
window.document.querySelector('#iframe')['contentWindow'].document.body.appendChild(window.document.querySelector('#content').cloneNode(true));
window.document.querySelector('#iframe')['contentWindow'].print()
}
}
}
</script>
效果如下:
点击打印效果如下:
至于打印的样式就自己调整了,要注意的是,外部文件的样式无法在打印时引入