在我努力寻找一种解决方案来打印只在 WordPress 中工作的页面的一个区域时,我遇到了一个非常好的小脚本,它完美地满足了我的需求……但仅限于 IE 浏览器。出于某种原因,Firefox 不想玩球。
脚本是:
function printURL(sHref) {
if(document.getElementById && document.all && sHref) {
if(!self.oPrintElm) {
var aHeads = document.getElementsByTagName('HEAD');
if(!aHeads || !aHeads.length)
return false;
if(!self.oPrintElm)
self.oPrintElm = document.createElement('LINK');
self.oPrintElm.rel = 'alternate';
self.oPrintElm.media = 'print';
aHeads[0].appendChild(self.oPrintElm);
}
self.oPrintElm.href = sHref;
self.focus();
self.print();
return true;
}
else
return false;
}
调用者:
<a onclick="printURL(this.href); return false;" href="http://printstuff.com" target="_blank">print</a>
这适用于 IE,但不适用于 FF。我对 JavaScript 了解不多,所以如果您能告诉我是否有任何让 Firefox 头疼的东西,我将不胜感激。
顺便说一句 - 我必须使用 javascript 路由而不是使用打印 CSS 文件,因为我要打印的区域(优惠券)设置在一个表中,该表显然设置在 WordPress 主题的容器和包装器 div 中,这使得它很难将其隔离以进行打印。
我还尝试了 iframe 打印,我在这方面取得了一些进展,但 IE 给我带来了问题(rolleyes)。所以上面的这个脚本对我来说似乎是一个很好的答案,除了当我点击“打印”时 Firefox 什么都不做。非常感谢。