0

カスタム JavaScript 関数を使用して div の内容を印刷することにより、クーポンを印刷するために使用されるクライアント用の Wordpress プラグインを編集しようとしています。このプラグインはショートコードによって呼び出されます:

[print-button target='div#foo']

ターゲットは、唯一のコンテンツであるクーポンの jpg を持つコンテナー div の css ID です。生成された「印刷」ボタンをクリックすると、ウィンドウが開き、jpg の印刷ダイアログが表示されます。ページにこのプラグインのインスタンスが 1 つあれば完全に機能しますが、インスタンスが 2 つ以上ある場合、新しい印刷ウィンドウで開く jpg はページの最後の jpg だけです。プラグインコードは次のとおりです。

add_shortcode("print-button", "sc_show_print_button");

function sc_show_print_button($atts, $content = null){

    $target_element = $atts['target'];

    if($target_element == ''){$target_element = "document.body";}

    $output = "<input id=\"coupon\" type='button' onClick='return pop_print()' value='Print Coupon'/>


    <script type='text/javascript'>
    function pop_print(){
        w=window.open(null, 'Print_Page', 'scrollbars=yes');
        w.document.write(jQuery('$target_element').html());
        w.document.close();
        w.print();
    }
    </script>";


    return  $output;
}

関数の最後で $target_element 変数をエコーアウトしましたが、各「ターゲット」変数が正しくリストされています。他のすべてのインスタンスの「印刷」ボタンをクリックすると、最後のインスタンスの画像だけが表示される理由がわかりません。私が見ていないJavaScriptの単純なものだと思います。

私はこのプラグインの最初の作成者ではないため、彼らに連絡することはできません。

ご協力ありがとうございました。

4

1 に答える 1