popup हरण एक ब्राउज़र पॉपअप को अवरुद्ध कर रहा है या नहीं, तो मैं कैसे पता लगा सकता हूं?




वेब ब्राउज़र लिस्ट (5)

मैंने ऊपर दिए गए कई उदाहरणों की कोशिश की, लेकिन मैं उन्हें क्रोम के साथ काम नहीं कर सका। यह सरल दृष्टिकोण क्रोम 39, फ़ायरफ़ॉक्स 34, सफारी 5.1.7, और आईई 11 के साथ काम करता प्रतीत होता है। यहां हमारे जेएस लाइब्रेरी से कोड का स्निपेट है।

openPopUp: function(urlToOpen) {
    var popup_window=window.open(urlToOpen,"myWindow","toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, copyhistory=yes, width=400, height=400");            
    try {
        popup_window.focus();   
    } catch (e) {
        alert("Pop-up Blocker is enabled! Please add this site to your exception list.");
    }
}

कभी-कभी, मैं एक ऐसे वेबपृष्ठ पर आया हूं जो एक नई विंडो (उपयोगकर्ता इनपुट के लिए, या कुछ महत्वपूर्ण) खोलने की कोशिश करता है, लेकिन पॉपअप अवरोधक इसे होने से रोकता है।

कॉलिंग विंडो का उपयोग यह सुनिश्चित करने के लिए किया जा सकता है कि नई विंडो ठीक से लॉन्च हो?


एक "समाधान" जो हमेशा ब्राउज़र कंपनी या संस्करण के बावजूद काम करेगा, स्क्रीन पर केवल एक चेतावनी संदेश डालना है, जो कहीं भी नियंत्रण के करीब है जो पॉप-अप बनाएगा, जो विनम्रता से उपयोगकर्ता को चेतावनी देता है कि कार्रवाई को पॉप- ऊपर और साइट के लिए उन्हें सक्षम करने के लिए कृपया।

मुझे पता है कि यह फैंसी या कुछ भी नहीं है, लेकिन यह कोई आसान नहीं हो सकता है और केवल 5 मिनट के परीक्षण की आवश्यकता है, तो आप अन्य दुःस्वप्न पर जा सकते हैं।

एक बार जब उपयोगकर्ता ने आपकी साइट के लिए पॉप-अप की अनुमति दी है, तो यह भी विचारशील होगा यदि आप पॉप-अप को अधिक नहीं करते हैं। आखिरी चीज जो आप करना चाहते हैं वह आपके आगंतुकों को परेशान करती है।


यदि आप पॉपअप खोलने के लिए जावास्क्रिप्ट का उपयोग करते हैं, तो आप इस तरह कुछ उपयोग कर सकते हैं:

var newWin = window.open(url);             

if(!newWin || newWin.closed || typeof newWin.closed=='undefined') 
{ 
    //POPUP BLOCKED
}

पॉपअप अवरोधक जांच के लिए यह समाधान एफएफ (v11), सफारी (v6), क्रोम (v23.0.127.95) और आईई (v7 और v9) में परीक्षण किया गया है। त्रुटि संदेश को संभालने के लिए _displayError फ़ंक्शन को अपडेट करें जैसा कि आप फिट देखते हैं।

var popupBlockerChecker = {
    check: function(popup_window){
        var _scope = this;
        if (popup_window) {
            if(/chrome/.test(navigator.userAgent.toLowerCase())){
                setTimeout(function () {
                    _scope._is_popup_blocked(_scope, popup_window);
                },200);
            }else{
                popup_window.onload = function () {
                    _scope._is_popup_blocked(_scope, popup_window);
                };
            }
        } else {
            _scope._displayError();
        }
    },
    _is_popup_blocked: function(scope, popup_window){
        if ((popup_window.innerHeight > 0)==false){ 
            scope._displayError();
        }
    },
    _displayError: function(){
       alert("Popup Blocker is enabled! Please add this site to your exception list.");
    }
};

उपयोग:

var popup = window.open("http://www.google.ca", '_blank');
popupBlockerChecker.check(popup);

उम्मीद है की यह मदद करेगा! :)


Onbeforeunload घटना का उपयोग करके हम निम्नानुसार जांच सकते हैं

    function popup()
    {
        var chk=false;
        var win1=window.open();
        win1.onbeforeunload=()=>{
            var win2=window.open();
            win2.onbeforeunload=()=>{
                chk=true;
            };
        win2.close();
        };
        win1.close();
        return chk;
    }

यह पृष्ठभूमि में 2 काले खिड़कियां खुल जाएगा

समारोह बुलियन मूल्य देता है।