1

次の目的でグリースモンキー スクリプトを作成しました。

  • サードパーティの Web アプリ ページに領収書の印刷ボタンを追加する
  • 新しいウィンドウでレシート プリンターに適したスタイルを div に追加します
  • このウィンドウを印刷する

ボタンは表示されますが、この時点で div を出力するだけの関数はトリガーされません。

私がいる場所は次のとおりです。

var scriptElement = document.createElement('script');
scriptElement.type = 'text/javascript';

scriptElement.innerHTML =  'function printReceipt() { \
var divToPrint=document.getEelementById("loanTable"); \
newWin= window.open(""); \
newWin.document.write(divToPrint.outerHTML); \
newWin.print(); \
newWin.close(); \
}';

document.getElementsByTagName("head")[0].appendChild(scriptElement);

window.addButton = function () {
    // Get the location on the page where you want to create the button
    var targetDiv = document.getElementById('newcheckout');

    // Create a div to surround the button
    var newDiv = document.createElement('div');
    newDiv.setAttribute('id', 'autoCheckOrder');

    // Create the button and set its attributes
    var inputButton = document.createElement('input');
    inputButton.name = 'autoCheckOrderButton';
    inputButton.type = 'button';
    inputButton.value = 'Print Receipt?';
    inputButton.setAttribute("onclick", "printReceipt();");

    // Append the button to the div
    newDiv.appendChild(inputButton); 
    targetDiv.appendChild(newDiv);
}
addButton();
4

1 に答える 1

3

この行にはタイプミスがあります:

var divToPrint=document.getEelementById("loanTable"); \

次のように変更します。

var divToPrint=document.getElementById("loanTable"); \



または、次の行をスクリプトのメタデータ セクションに追加します。

// @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js

次に、スクリプト全体は次のようになります。

$("#newcheckout").append ('<div id="autoCheckOrder"></div>');
$("#autoCheckOrder").append ('<button>Print Receipt?</button>');

$("#autoCheckOrder button").click ( function () {
    var divToPrint  = document.getElementById ("loanTable"); 
    var newWin      = window.open (""); 
    newWin.document.write (divToPrint.outerHTML); 
    newWin.print(); 
    newWin.close(); 
} );
于 2012-05-03T04:05:51.253 に答える