0

onclick がページの特定の部分の新しいウィンドウを作成し、それを印刷する JavaScript 呼び出しを作成しようとしています。

これを行うために、似たようなことをしようとしていた他の誰かのSF回答を変更しています

<div class="patienspecials clearfix" id="print_div1">
    <h1>Bla bla bla</h1> 
    <a href="#" onclick="printInfo(print_div1)"><img 
        class="alignnone size-full wp-image-6196" alt="print-icon" 
        src="#" width="92" height="28" /></a>
</div>

この関数の引数として div print_div1 を渡そうとしています -

<script type="text/javascript">
function printInfo(ele) {
    var openWindow = window.open("", "title", "attributes");
    openWindow.document.write(document.getElementById(ele));
    openWindow.document.close();
    openWindow.focus();
    openWindow.print();
    openWindow.close();
}
</script>

ただし、スクリプトを実行すると、印刷コマンドは「null」というテキストを含む新しいページを作成するだけです。

私はgetElementByIdで何か間違ったことをしていると確信しています。これを機能させる方法について何かアイデアはありますか? まだ初心者で、助けていただければ幸いです!

乾杯

4

2 に答える 2

3

printInfo(print_div1)print_div1は、文字列ではなく、ID の要素を渡します'print_div1'

クエリする文字列 ID として使用するのではなく、渡された要素を使用するように JavaScript を更新するだけです。

<script type="text/javascript">
function printInfo(ele) {
    var openWindow = window.open("", "title", "attributes");
    //no longer need to select the element by ID, just use it
    openWindow.document.write(ele);
    openWindow.document.close();
    openWindow.focus();
    openWindow.print();
    openWindow.close();
}
</script>

何らかの理由で本当に使用したい場合document.getElementById()は、インライン イベントで文字列 id を必ず引用符で囲んでください。

<div class="patienspecials clearfix" id="print_div1">
    <h1>Bla bla bla</h1> 
    <!-- Notice the quotes around 'print_div1' -->
    <a href="#" onclick="printInfo('print_div1')"><img 
        class="alignnone size-full wp-image-6196" alt="print-icon" 
        src="#" width="92" height="28" /></a>
</div>

いずれか (両方ではなく) を変更すると、正常に動作するはずです。お役に立てれば!

于 2013-09-22T05:49:55.220 に答える
0

これは、文字列ではなく未定義print_div1の変数を渡しているためです。使用する:

<a onclick="printInfo('print_div1')">...</a>

于 2013-09-22T05:54:00.103 に答える