页面脚本的打印部分在IE中完美运行但在Firefox中存在问题

时间:2011-08-27 23:17:47

标签: javascript firefox printing printing-web-page

在我的战斗中找到一个解决方案来打印只在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'时什么都不做。非常感谢。

1 个答案:

答案 0 :(得分:0)

document.all在IE以外的所有浏览器中测试为false。因此,您的代码非常明确地仅在IE中运行self.print()行。