আমি জাভাস্ক্রিপ্ট ব্যবহার করে কীভাবে একটি মুদ্রণ ডায়ালগ বক্স পপ-আপ করতে পারি?


159

আমার কাছে একটি "মুদ্রণ" লিঙ্কযুক্ত একটি পৃষ্ঠা রয়েছে যা ব্যবহারকারীকে মুদ্রক-বান্ধব পৃষ্ঠায় নিয়ে যায়। ব্যবহারকারী মুদ্রণ-বান্ধব পৃষ্ঠায় উপস্থিত হলে একটি মুদ্রণ ডায়ালগ বাক্স স্বয়ংক্রিয়ভাবে উপস্থিত হতে চায়। আমি কীভাবে জাভাস্ক্রিপ্ট দিয়ে এটি করতে পারি?

উত্তর:


235
window.print();  

যদি না আপনি কাস্টম খুঁজছেন পপআপ বোঝায়।


5
কিছুটা পুরানো, তবে আমি যুক্ত করতে চাই ... উইন্ডো.প্রিন্ট (); সেটটাইমআউট ("উইন্ডো .ক্লোজ ()", 100); । এটি বাকী পৃষ্ঠাটি লোড হওয়ার জন্য পর্যাপ্ত সময় অপেক্ষা করে, তবে মুদ্রণ কথোপকথনের মুদ্রণ বোতামটি চাপ না দেওয়া বা বাতিল না করা পর্যন্ত স্তব্ধ হয়ে যায় এবং তারপরে সুন্দরভাবে ট্যাবটি আবার নীচে বন্ধ করে দেয়।
স্টিফেন

37

আপনি করতে পারেন

<body onload="window.print()">
...
</body>

21

আমি এটি পছন্দ করি, যাতে আপনি যা খুশি ক্ষেত্রগুলি যুক্ত করতে পারেন এবং সেভাবে মুদ্রণ করতে পারেন।

function printPage() {
    var w = window.open();

    var headers =  $("#headers").html();
    var field= $("#field1").html();
    var field2= $("#field2").html();

    var html = "<!DOCTYPE HTML>";
    html += '<html lang="en-us">';
    html += '<head><style></style></head>';
    html += "<body>";

    //check to see if they are null so "undefined" doesnt print on the page. <br>s optional, just to give space
    if(headers != null) html += headers + "<br/><br/>";
    if(field != null) html += field + "<br/><br/>";
    if(field2 != null) html += field2 + "<br/><br/>";

    html += "</body>";
    w.document.write(html);
    w.window.print();
    w.document.close();
};

2
এটি আমার জন্য কবজির মতো কাজ করেছিল। ব্রাউজারে পপআপগুলি অনুমতি দেওয়ার প্রয়োজন। আমি নিশ্চিত না যে "ক্লোজ" কখনই কার্যকর হয়ে যায়, যেহেতু ট্যাবটি কখনও যায় না।
সমৃদ্ধ

5

আমি ল্যান্ডস্কেপ প্রিন্ট করতে তাদের মনে পড়ে তা নিশ্চিত করার জন্য আমি এটি করি, যা প্রচুর প্রিন্টারে অনেক পৃষ্ঠার জন্য প্রয়োজনীয়।

<a href="javascript:alert('Please be sure to set your printer to Landscape.');window.print();">Print Me...</a>

অথবা

<body onload="alert('Please be sure to set your printer to Landscape.');window.print();">
etc.
</body>


0

আপনি এটি বোতামে বা পৃষ্ঠার লোডে টাই করতে পারেন।

window.print();

0

আমি জানি উত্তর ইতিমধ্যে সরবরাহ করা হয়েছে। তবে আমি কেবল একটি ব্লেজার অ্যাপে (রেজার) এই কাজটি করার বিষয়ে বিস্তারিত জানাতে চেয়েছিলাম ...

জেএসআইন্টার্প (সি # থেকে জাভাস্ক্রিপ্ট ফাংশন চলমান) সম্পাদনের জন্য আপনাকে আইজেএসআরটাইম ইনজেক্ট করতে হবে

আপনার রেজার পৃষ্ঠাতে:

@inject IJSRuntime JSRuntime

এটি একবার ইনজেকশনের পরে, ক্লিক ইভেন্টের সাথে একটি বোতাম তৈরি করুন যা একটি সি # পদ্ধতিতে কল করে:

<MatFAB Icon="@MatIconNames.Print" OnClick="@(async () => await print())"></MatFAB>

(বা আপনি যদি ম্যাটব্লাজর ব্যবহার না করেন তবে আরও সাধারণ কিছু)

<button @onclick="@(async () => await print())">PRINT</button>

সি # পদ্ধতির জন্য:

public async Task print()
{
    await JSRuntime.InvokeVoidAsync("printDocument");
}

এখন আপনার সূচক html:

<script>
    function printDocument() {
        window.print();
    }
</script>

কিছু লক্ষণীয় বিষয়, অনক্লিক ইভেন্টগুলি অবিচ্ছিন্ন হওয়ার কারণ, আইজেএসআরটাইম ইনভেকভয়েডএন্সিঙ্কের মতো কলগুলির জন্য অপেক্ষা করছে

পিএস: উদাহরণস্বরূপ আপনি যদি এসপি নেট কোরটিতে বার্তা পাঠাতে চান:

await JSRuntime.InvokeAsync<string>("alert", "Hello user, this is the message box");

একটি নিশ্চিত বার্তা বাক্স থাকতে:

bool question = await JSRuntime.InvokeAsync<bool>("confirm", "Are you sure you want to do this?");
    if(question == true)
    {
        //user clicked yes
    }
    else
    {
        //user clicked no
    }

আশাকরি এটা সাহায্য করবে :)


-6

যদি সমস্যা হয়:

 mywindow.print();

বিকল্প ব্যবহার করে:

'<scr'+'ipt>print()</scr'+'ipt>'

সম্পূর্ণ:

 $('.print-ticket').click(function(){

        var body = $('body').html();
        var ticket_area = '<aside class="widget tickets">' + $('.widget.tickets').html() + '</aside>';

        $('body').html(ticket_area);
        var print_html = '<html lang="tr">' + $('html').html() + '<scr'+'ipt>print()</scr'+'ipt>' + '</html>'; 
        $('body').html(body);

        var mywindow = window.open('', 'my div', 'height=600,width=800');
        mywindow.document.write(print_html);
        mywindow.document.close(); // necessary for IE >= 10'</html>'
        mywindow.focus(); // necessary for IE >= 10
        //mywindow.print();
        mywindow.close();

        return true;
    });

3
আপনি যেভাবেই হোক একসাথে এটিকে মনোযোগ দিচ্ছেন? '<scr' + 'আইপিটি> মুদ্রণ () </ scr' + 'আইপিটি>'
ক্রিস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.