आईई 8 ब्राउज़र प्रिंट संवाद में "प्रिंट" बटन दबाकर लटकता है जब एक आईफ्रेम के माध्यम से जावास्क्रिप्ट के साथ एकत्रित सामग्री को प्रस्तुत करता है

मैं इस मुद्दे पर कुछ हफ्तों के लिए काम कर रहा हूं और इसे हल करने में असमर्थ रहा हूं। समस्या केवल आईई 8 उपयोगकर्ताओं के एक छोटे से सबसेट द्वारा रिपोर्ट की जाती है। मैंने विंडोज एक्सपी, आईई 8 (समान संस्करण उपयोगकर्ता रिपोर्ट) के वीएम चलाकर समस्या को पुन: उत्पन्न करने का प्रयास किया है, और समन्वयित ब्राउज़र सुरक्षा सेटिंग्स। इसके बावजूद, मैं खुद के लिए समस्या को पुन: उत्पन्न करने में असमर्थ हूं। इसे पुन: उत्पादित करना बहुत अच्छा होगा, लेकिन आखिरकार यह सब कुछ समस्या का स्रोत खोज रहा है।

प्रिंट फ़ंक्शन काम करने का तरीका यह है:

  1. User presses a link on the page which triggers a JavaScript function.
  2. The JavaScript performs some logic to get the content of a subsection of the page (based on which print link was clicked).
  3. "exCanvas elements are set to display:none" because I found that they caused printing bugs. 4.The element is printed using a slightly modified version of "Print Element" found here: http://projects.erikzaadi.com/jQueryPlugins/jQuery.printElement/

तब उपयोगकर्ता को आईई से प्रिंट संवाद के साथ संकेत दिया जाता है। जब उपयोगकर्ता "प्रिंट" बटन हिट करता है तो IE लटकता है और प्रक्रिया को समाप्त करके केवल शट डाउन किया जा सकता है। यदि उपयोगकर्ता "रद्द" हिट करता है तो IE लटका नहीं है और उपयोगकर्ता अपने व्यवसाय के बारे में जारी रख सकता है।

उपयोगकर्ता बिना किसी परेशानी के पूरे पृष्ठ को मुद्रित करने के लिए डिफ़ॉल्ट प्रिंट कार्यक्षमता का उपयोग करने में सक्षम है। यह तब होता है जब उन्होंने मेरे जावास्क्रिप्ट आधारित प्रिंट फ़ंक्शन का उपयोग किया जो ब्राउज़र लटकता है।

मैंने उपयोगकर्ता को नो-एडन आईई 8 चलाया है, अपने विंडोज इवेंट लॉग में देखें, और IE8 में कुछ सामान्य समस्या सुविधाओं को अक्षम करें।

मैं वास्तव में इस प्रक्रिया में कहां से हो सकता है इस प्रक्रिया में कहां हो सकता है। ऐसा लगता है कि यह मेरी जावास्क्रिप्ट को इंगित करता है लेकिन यह मुझे रोकता है कि ब्राउजर प्रिंट संवाद प्रिंट बटन दबाए जाने के बाद त्रुटि होती है। मैं उम्मीद करता हूं कि window.print() फ़ंक्शन को फ़ोकस आईफ़्रेम पर कॉल करने से पहले त्रुटि होनी चाहिए।

किसी भी मदद की बहुत सराहना की जाएगी क्योंकि इस बग ने मुझे काफी निराशा दी है।

धन्यवाद।

संपादित करें ----------------------------------------

मैं नीचे दिए गए अनुसार मानक jQuery प्रिंट लाइब्रेरी का उपयोग थोड़ा कस्टम _getMarkup फ़ंक्शन के साथ करता हूं:

    function _getMarkup(element, opts) {
    var $element = $(element);
    var elementHtml = _getElementHTMLIncludingFormElements(element);

    var html = new Array();
    html.push('<html><head><title>' + opts["pageTitle"] + '</title>');
    if (opts["overrideElementCSS"]) {
        if (opts["overrideElementCSS"].length > 0) {
            for (var x = 0; x < opts["overrideElementCSS"].length; x++) {
                var current = opts["overrideElementCSS"][x];
                if (typeof (current) == 'string')
                    html.push('<link type="text/css" rel="stylesheet" href="' + current + '" >');
                else
                    html.push('<link type="text/css" rel="stylesheet" href="' + current["href"] + '" media="' + current["media"] + '" >');
            }
        }
    }
    else {
        $("link", document).filter(function() {
            return $(this).attr("rel").toLowerCase() == "stylesheet";
        }).each(function() {
            html.push('<link type="text/css" rel="stylesheet" href="' + $(this).attr("href") + '" media="' + $(this).attr('media') + '" >');
        });
    }
    //Ensure that relative links work
    html.push('');
    html.push(hieviews.getPrintCSS($("head").html()));
    html.push('</head><body style="' + opts["printBodyOptions"]["styleToAdd"] + '" class="' + opts["printBodyOptions"]["classNameToAdd"] + '">');

    var contentStr = $('<div></div>');
    $(contentStr).append($('#disclaimer').html());
    $(contentStr).append($('#nav').html());
    $(contentStr).append("

"+$(".title",$(element).parent().parent().children(":first")).text() +"

");
    $(contentStr).append('<div>' + elementHtml + '</div>');

    var refTable = "";
    var total = $(".show-tooltip-text, .hidden_report",contentStr).each(function(index){
        if(index == 0){
            refTable += "

Reference Table

<table class=\"dataTable\" id=\"cite\"><thead><tr><th>ref</th><th>Content</th></tr></thead><tbody>";
        }
        //if($(this).is(":hidden")){
        if($(this).css("display") != "block"){
            $(this).parent().append("*ref: #"+index+"");
            refTable += "<tr><td>"+index+"</td><td>"+$(this).html()+"</td></tr>";
        }
        if(index == total){
            refTable += "</tbody></table>";
        }
    }).length;
    $(contentStr).append(refTable);
    html.push($(contentStr).html());

    html.push('<script type="text/javascript">function printPage(){focus();window.print();' + ((!$.browser.opera && !opts["leaveOpen"] && opts["printMode"].toLowerCase() == 'popup') ? 'close();' : '') + '}<\/script>');
    html.push('</body></html>');
    return html.join('');
};
1
"जब उपयोगकर्ता" प्रिंट "बटन हिट करता है तो IE लटकता है और केवल प्रक्रिया को समाप्त करके बंद कर दिया जा सकता है।" - यह वास्तव में एक ओएस समस्या की तरह लगता है। और यदि आप इस मुद्दे को पुन: उत्पन्न नहीं कर सकते हैं या समीक्षा करने के लिए कुछ कोड प्रदान नहीं कर सकते हैं, तो समस्या निवारण पॉइंटर्स देने के अलावा हम कुछ भी नहीं कर सकते हैं ... तो हम ऑफ-विषय हैं।
जोड़ा लेखक Sparky, स्रोत
मैं उन पंक्तियों के साथ कुछ सोच रहा था, लेकिन तथ्य यह है कि वे सिर्फ मेरे पृष्ठ पर जा सकते हैं और "फ़ाइल -> प्रिंट" जा सकते हैं और यह ठीक काम करता है मुझे लगता है कि जावास्क्रिप्ट या मेरी प्रिंट प्रक्रिया के साथ इसका कुछ संबंध है। जहां तक ​​कोड समीक्षा जाती है, मैं ऊपर वर्णित पुस्तकालय का उपयोग करता हूं। मैंने उपर्युक्त पोस्ट में किए गए संशोधनों को भी जोड़ा है जो बहुत कम हैं। मुझे किसी भी समस्या निवारण युक्तियों में भी आपका स्वागत है क्योंकि मुझे लगता है कि मैंने अपने शस्त्रागार को पहना है।
जोड़ा लेखक Bryce, स्रोत
मुझे उस पृष्ठ के साथ ऐसी ही समस्याएं थीं जहां सामग्री जेएस में प्रदान की गई थी, और सीएसएस था जो पृष्ठ पर अधिकांश तत्वों को छुपाता था। पृष्ठ मूल रूप से विभिन्न सीएसएस के साथ एक सामान्य पृष्ठ था। सामान्य संस्करण ठीक काम करता था, लेकिन एक बार नई स्टाइलशीट पेश की जाने के बाद, समस्याएं शुरू हुईं। तो मेरा सबसे अच्छा अनुमान था कि आईई 8 को संभालने के लिए भारी सीएसएस छिपाने और भारी जेएस (मानचित्र) प्रतिपादन बहुत अधिक था।
जोड़ा लेखक Marcus, स्रोत

कोई जवाब नहीं है

0