javascript - पॉपअप अवरुद्ध किए बिना नई विंडो में ओपन पेज




jquery popup (4)

आशा है कि आप यहां थोड़ी मदद कर सकते हैं ... मेरे पास एक ऐसा फॉर्म है जो किसी फ़ील्ड में एक शब्द का अनुवाद करता है, अनुवादित शब्द के साथ फ़ील्ड को पॉप्युलेट करता है और फिर एक सबमिट बटन में कार्रवाई सबमिट करता है।

जमा jquery द्वारा किया जा रहा है। समस्या यह है कि लक्षित पृष्ठ अवरुद्ध किया जा रहा है क्योंकि सभी 3 प्रमुख ब्राउज़र पॉपअप के रूप में इसका इलाज करते हैं, क्या आप जानते हैं कि इसे एक नया टैब या नई विंडो के रूप में कैसे खोलें? मैं लक्ष्य को स्वयं के रूप में सेट नहीं करना चाहता क्योंकि मैं चाहता हूं कि लोग अपनी साइट को भी खोलें।

मेरा मानना ​​है कि समस्या इस स्ट्रिंग में है:

document.forms.form1.submit();

लेकिन मुझे यह भी पता है कि इसे फिर से भरने का एक तरीका होना चाहिए ताकि लक्ष्य को पॉपअप के रूप में नहीं माना जाएगा।

यह स्क्रिप्ट है:

<script type="text/javascript">

$(function transle() {
  $('#transbox').sundayMorningReset();
  $('#transbox input[type=button]').click(function(evt) {
    $.sundayMorning(
      $('#transbox input[type=text]').val(), {
        source: '',
        destination: 'ZH',
        menuLeft: evt.pageX,
        menuTop: evt.pageY
      },
      function(response) {
        $('#transbox input[type=text]').val(response.translation);

        //document.getElementById("form1").submit();
        document.forms.form1.submit();

      }
    );
  });
});

</script>

और यह रूप है:

<table id="transbox" name="transbox" width="30px" border="0" cellspacing="0" cellpadding="0">
  <form action="custom-page" method="get" name="form1" target="_blank" id="form1">

    <tr>
      <td>
        <input id="q" name="q" type="text" class="search_input" onFocus="if (this.value == 'Evening dress') {this.value = '';}" onBlur="if (this.value == '') {this.value = 'Evening dress';}" value="Evening dress" />
      </td>
      <td>
        <input type="button" value="Find" style="color: #333; width: 157px; font-weight:bold"></input>
      </td>
    </tr>

  </form>
</table>

संपादित करें

मैंने इन सभी तारों को सबमिट करने की कोशिश की है:

document.getElementById("form1").submit();
document.forms.form1.submit();
form1.submit();

लक्ष्य पॉपअप अवरुद्ध होने के लक्ष्य के साथ समाप्त होता है। कृपया, क्या मुझे कोई अन्य तरीका है कि मुझे कोड को पॉप अप न करने के लिए करना चाहिए?

शायद jQuery बनाने के लिए ऑनसमेट का उपयोग करना चाहिए? कोई जानता है कि कैसे?


एक सामान्य नियम के रूप में, ब्लॉकर्स को पॉप अप करें जो विंडोज़ इंटरैक्शन के बिना लॉन्च करते हैं। आम तौर पर एक क्लिक इवेंट ब्लॉक किए बिना विंडो खोल सकता है । (जब तक यह वास्तव में एक बुरा पॉपअप अवरोधक नहीं है)

एक क्लिक घटना के बाद लॉन्च करने का प्रयास करें


पीएस> मैंने इस उत्तर को एक संबंधित प्रश्न पर पोस्ट किया। भरोसेमंद संदर्भ खोने के मेरे एसिंक AJAX अनुरोध के मुद्दे को हल करने के तरीके यहां बताया गया है:

मैंने सीधे उपयोगकर्ताओं के क्लिक पर पॉपअप खोला, यूआरएल को निर्देशित किया about:blank और उस विंडो पर एक हैंडल मिला। जब आप अपने AJAX अनुरोध के दौरान पॉपअप को 'लोडिंग' यूआरएल पर निर्देशित कर सकते हैं

var myWindow = window.open("about:blank",'name','height=500,width=550');

फिर, जब मेरा अनुरोध सफल होता है, तो मैं विंडो में अपना कॉलबैक यूआरएल खोलता हूं

function showWindow(win, url) {
     win.open(url,'name','height=500,width=550');
}

यह एकमात्र ऐसा है जो वास्तव में सभी ब्राउज़रों में मेरे लिए काम करता है

let newTab = window.open(); newTab.location.href = url;


सबमिट बटन के लिए, इस कोड को जोड़ें और फिर अपना फॉर्म लक्ष्य = "न्यूविन" सेट करें

onclick=window.open("about:blank","newwin") 






popup