ticketmaster-print

Print mobile tickets from ticketmaster

スクリプトをインストールするには、Tampermonkey, GreasemonkeyViolentmonkey のような拡張機能のインストールが必要です。

You will need to install an extension such as Tampermonkey to install this script.

スクリプトをインストールするには、TampermonkeyViolentmonkey のような拡張機能のインストールが必要です。

スクリプトをインストールするには、TampermonkeyUserscripts のような拡張機能のインストールが必要です。

このスクリプトをインストールするには、Tampermonkeyなどの拡張機能をインストールする必要があります。

このスクリプトをインストールするには、ユーザースクリプト管理ツールの拡張機能をインストールする必要があります。

(ユーザースクリプト管理ツールは設定済みなのでインストール!)

このスタイルをインストールするには、Stylusなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus などの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus tなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

(ユーザースタイル管理ツールは設定済みなのでインストール!)

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください
// ==UserScript==
// @name         ticketmaster-print
// @version      2024-10-01
// @description  Print mobile tickets from ticketmaster
// @author       Kasper Laudrup
// @namespace    stacktrace.dk
// @grant        none
// @license      MIT
// @include      https://www.ticketmaster.tld/user/order/*/view*
// @require      https://code.jquery.com/jquery-latest.js
// ==/UserScript==

/* global $ */

(function() {
    'use strict';
    function print_ticket(title, contents) {
        var printWindow = window.open('', '', 'height=400,width=800');
        printWindow.document.write('<html><head><title>' + title + '</title>');
        printWindow.document.write('<style>span { display: block; }</style>');
        printWindow.document.write('</head><body><div style="width: 100%; text-align:center;">');
        printWindow.document.write('<h1>' + title + '</h1>');
        printWindow.document.write(contents);
        printWindow.document.write('</div></body></html>');
        printWindow.document.close();
        printWindow.print();
    }

    $(document).ready(function() {
        $("#main-content").on('DOMSubtreeModified', "#tickets-tabpanel", function() {
            var title = $('h1').first().text();
            var $qrcode = $(this).find('img').first();
            var $contents = $qrcode.parent().parent().parent().clone();
            var $button = $('#print-ticket');
            if (!$button.length) {
                var $input = $('<input id="print-ticket" type="button" value="Print" style="background-color: white; border: 1px solid; padding: 10px; text-align: center;"/>');
                $input.appendTo($("#tickets-tabpanel"));
                $(document).on('click','#print-ticket',function() {
                    print_ticket(title, $contents.html());
                });
            }
        });
    });
})();