在我的战斗中找到一个解决方案来打印只在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点击'print'时什么都不做。非常感谢。
答案 0 :(得分:0)
document.all
在IE以外的所有浏览器中测试为false。因此,您的代码非常明确地仅在IE中运行self.print()
行。