0

WordPress 内で機能するページの 1 つの領域のみを印刷するソリューションを見つけるための戦いで、私のニーズを完全に満たす優れた小さなスクリプトに出会いました..ただし、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 で頭を悩ませていることが何かありましたら教えていただければ幸いです。

ちなみに、印刷CSSファイルを使用する代わりに、JavaScriptルートを使用する必要があります。印刷したい領域(クーポン)は、明らかにWordPressテーマのコンテナとラッパーdivに設定されているテーブルに設定されているためです。印刷用に分離するのは困難です。

私はiframe印刷も試しましたが、これである程度前進しましたが、IEでは問題が発生します(ロールアイ)。したがって、上記のスクリプトは、「印刷」をクリックしても Firefox が何もしないことを除いて、私にとっては良い答えのように思えます。どうもありがとう。

4

1 に答える 1