2009-05-20 17 views
11

किसी को भी मदद कर सकते हैं द्वारा अवरुद्ध है, मैं एक पॉपअप है कि अवरुद्ध किया जा रहा है। यह एक पॉपअप है कि क्योंकि किसी को अपनी साइट पर एक प्रिंट चित्र पर क्लिक करने पर बनाया जाता है।जावास्क्रिप्ट window.open आईई पॉपअप अवरोधक

मैंने सोचा था कि आईई इन ब्लॉक करने के लिए माना जाता नहीं है जब पॉपअप एक onclick के माध्यम से आया था?

क्या कोई मदद कर सकता है? अगर पॉपअप अवरोधक सक्षम child1 वैरिएबल हमेशा NULL के रूप में दिया जाता है ...

हो सकता है कि समस्या यह है कि onclick घटना तो एक नया कार्य जो एक html फ़ाइल लोड करता है और करता है करने के लिए नियंत्रण गुजरता है child.document.write

यहाँ मेरी सरल है कोड ..

var width = 800; 
var height = 600; 
var left = parseInt((screen.availWidth/2) - (width/2)); 
var top = parseInt((screen.availHeight/2) - (height/2)); 
var windowFeatures = "width=" + width + ",height=" + height 
    + ",menubar=yes,toolbar=yes,scrollbars=yes,resizable=yes,left=" 
    + left + ",top=" + top + "screenX=" + left + ",screenY=" + top;  

child1 = window.open("about:blank", "subWind", windowFeatures); 

उत्तर

13

समस्या यह है कि खुला रहेगा केवल खिड़की के लिए एक संदर्भ वापस आ जाएगी यदि आप अपने वर्तमान मेजबान भीतर कहीं करने के लिए नेविगेट कर रहे हैं। खाली जो अपने मेजबान के भीतर नहीं है: आप के बारे में करने के लिए नेविगेट कर रहे हैं।

आपकी साइट के लिए एक blank.htm फ़ाइल और खुले कि बजाय जोड़ने का प्रयास करें। मैं अब भी लगता है कि दस्तावेज़.लिखें दस्तावेज़ लिखने के लिए खुला नहीं होगा, तो आप मौजूदा खाली दस्तावेज़ के डोम हेरफेर करने के लिए हालांकि सक्षम हो सकता है की अनुमति दी जाएगी नहीं हूँ।

+0

में काम नहीं करता है हां धन्यवाद, यह मूल रूप से मुझे अपने वर्तमान वेब से एक फ़ाइल लोड करने की आवश्यकता है, न कि ब्लैंक ... इसलिए मैंने एक खाली HTML फ़ाइल बनाई .. इसे लोड किया और windows.write मेरा एचटीएमएल लिखने के लिए .. धन्यवाद आप और सभी के लिए धन्यवाद एल्स टिप्पणियां –

3

यह इसे अवरुद्ध करता है क्योंकि यह लक्ष्य = "_ खाली" वाला एंकर नहीं है। आप पॉपअप प्रोग्राम के बना रहे हैं।

बस आपके द्वारा दिए गए कोड उदाहरण के बाद यह करते हैं।

if (!child1) { 
     alert('You have a popup blocker enabled. Please allow popups for www.yourSite.com'); 
} 
+2

:

let win = window.open(); setTimeout(function(){ win.customParam = 'xxxx'; }); 

जीत में, आप एक टाइमर या पाश के साथ खिड़की ऑनलोड के बाद customParam प्राप्त कर सकते हैं यह आईई 8 – JBeckton

0

मैं सुझाव है कि आप एक लक्ष्य = "_ blank" के बजाय एक window.open() के साथ एक डमी [प्रपत्र] बनाने के लिए।

मैं यह काम करता है उम्मीद है।

सम्मान।

पीडी: मैं अपनी साइट है, है ना जोड़ने मान लेना "सुरक्षित साइट" एक विकल्प नहीं है?

4

इंटरनेट एक्सप्लोरर पॉप-अप अवरोधक, Medium फ़िल्टर स्तर पर सेट होने पर, जावास्क्रिप्ट द्वारा खोले गए विंडो को अवरुद्ध नहीं करेगा यदि उन्हें उपयोगकर्ता कार्रवाई द्वारा शुरू किया गया है। निम्नलिखित IE 6, 7 और 8 में ठीक काम करता है:

<script type="text/javascript"> 
function openWin() { 
    var width = 800; 
    var height = 600; 
    var left = Math.floor((screen.availWidth - width)/2); 
    var top = Math.floor((screen.availHeight - height)/2); 
    var windowFeatures = "width=" + width + ",height=" + height + 
      ",menubar=yes,toolbar=yes,scrollbars=yes,resizable=yes," + 
      "left=" + left + ",top=" + top + 
      "screenX=" + left + ",screenY=" + top; 
    child1 = window.open("about:blank", "subWind", windowFeatures); 
    writeTo(child1); 
} 
function writeTo(w) { 
    w.document.write('Test'); 
} 
</script> 
<a href="#" onclick="openWin();return false;">Test</a> 

नोट नए खुले विंडो में document.write का उपयोग कर कुछ वेब ब्राउज़र में काम नहीं करता है। यह भी ध्यान रखें कि यह अन्य ब्राउज़रों में एक पॉप-अप ब्लॉकर, भले ही वह रूप में इंटरनेट एक्सप्लोरर में दिखाया गया है काम करता है को गति प्रदान कर सकते हैं।

मैंने देखा है कि onclick ईवेंट से जावास्क्रिप्ट को आविष्कार करने के लिए, कुछ मामलों में, पॉप-अप अवरोधक ट्रिगर करने का कारण बन सकता है। ऐसा लगता है कि कैसे दूरwindow.open() ऑनक्लिक घटना से है। window.open() पर कॉल करने से पहले फ़ंक्शंस कॉल करने के कार्यों के बहुत सारे स्तर। अपना सटीक कार्यान्वयन देखे बिना, मैं आपको यह नहीं बता सकता कि यह समस्या है या नहीं।

+0

अच्छा कोड यह काम कर रहा है! thanx –

1

कोड प्रयास करें

var newWin = window.open(...); 
if (newWin && newWin.top) { 
    // popup has opened 
} else { 
    // popup has been blocked 
} 
0

मैं यानी 10/11 में एक विचार है:

संबंधित मुद्दे