1

理由はわかりませんが、印刷ボタンをクリックすると、印刷プレビューにタグ選択オプションの最初のオプションが常に表示されます。

例として:testingprint.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>

<body>
<div id="printing">
    <table>
        <tr>
            <td>
                <select>
                <option>-</option>
                    <option>A</option>
                    <option>B</option>
                </select>
            </td>
            <td><input type="button" onclick="printPage('printing')"/></td>
        </tr>        
    </table>
</div>
</body>
</html>

そしてここにjavascript:java.js

<script type="text/javascript">
function printPage(id)
{ 

   var html="<html>";
   html+="<head>";
   html+="</head>";
   html+= document.getElementById(id).innerHTML;
   html+="</html>";

   var printWin = window.open('','','left=0,top=0,width=1024,height=768,toolbar=0,scrollbars=0,status  =0');
   printWin.document.write(html);
   printWin.document.close();
   printWin.focus();
   printWin.print();
   printWin.close();

}

</script>

オプション「A」または別のオプションを選択したにもかかわらず、印刷プレビューでオプションがまだ「 - 」と表示されるのはなぜですか?

誰かアドバイスをくれませんか?..または、印刷スクリプトには何を使用すればよいですか?

print() 関数を使用すると、ページ全体が印刷されます。選択したものだけを印刷したい

ご協力いただきありがとうございます、

4

2 に答える 2

0

<select>要素にid属性を与えます:

<select id="select1">
    ...
</select>

そして、このJavascriptを使用してください:

function printPage(id) { 
    var selectedIndex = document.getElementById("select1").selectedIndex;
    var html = "<html>";
    html += "<head></head>";
    html += "<body>";
    html += document.getElementById(id).innerHTML;
    html += "<script type='text/javascript'>";
    html += "document.getElementById('select1').selectedIndex = " + selectedIndex + ";";
    html += "<\/script>";
    html += "</body>";
    html += "</html>";

    var printWin = window.open('','','left=0,top=0,width=1024,height=768,toolbar=0,scrollbars=0,status  =0');
    printWin.document.open();
    printWin.document.write(html);
    printWin.document.close();
    printWin.focus();
    printWin.print();
    printWin.close();
}

デモ: http://jsfiddle.net/bkHC2/1/

を使用.innerHTMLして要素の内容を取得する場合、その現在の「状態」については何もコピーされません。したがって、私の「修正」の簡単な方法は、Javascript を新しいウィンドウに配置してselectedIndex<select>要素の をメイン ページの現在の状態に設定することでした。

<body>要素をhtml変数に含めたことに注意してください。

于 2013-04-17T20:54:34.953 に答える