开发者

Print section of page script works perfectly in IE but problems in Firefox

In my battles to find a solution to printing just one area of the page that works within WordPress, I came across an excellent little script that meets my needs pe开发者_运维百科rfectly.. but only in IE browser. For some reason Firefox doesn't want to play ball.

The script is:

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;
}

Called by:

<a onclick="printURL(this.href); return false;" href="http://printstuff.com" target="_blank">print</a>

This is working in IE, but not FF. I don't know much about JavaScript, so would appreciate if you could tell me if there's anything you see that's giving Firefox headaches.

By the way - I have to go a javascript route instead of using a print CSS file, as the area I want to print (a coupon) is set in a table which is obviously set in the WordPress theme's container and wrapper divs which makes it difficult to isolate it for printing.

I've also experimented with iframe printing, which I made some headway with, but IE gives me problems there (rolleyes). So this script above seems a good answer to me, except Firefox does nothing when I click 'print'. Thanks a lot.


document.all tests false in all browsers other than IE. So your code is very explicitly only running the self.print() line in IE only.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜