जावास्क्रिप्ट: location.href नई विंडो / टैब में खोलें?


389

मेरे पास एक थर्ड पार्टी डेवलपर की एक जावास्क्रिप्ट फाइल है। इसमें एक लिंक है जो वर्तमान पृष्ठ को लक्ष्य के साथ बदल देता है। मैं इस पृष्ठ को एक नए टैब में खोलना चाहता हूं।

अभी तक मेरे पास इतना ही है:

if (command == 'lightbox') {
 location.href="https://support.wwf.org.uk/earth_hour/index.php?type=individual";
}

क्या कोई मेरी मदद कर सकता है?

जवाबों:


930
window.open(
  'https://support.wwf.org.uk/earth_hour/index.php?type=individual',
  '_blank' // <- This is what makes it open in a new window.
);

102
उल्लेख के लायक: क्या एक नया टैब या विंडो बनाई गई है, ब्राउज़र (सेटिंग) द्वारा तय किया गया है
जॉन्डी

4
@alex मैंने इस उत्तर को महत्वपूर्ण बिट पठनीय बनाने के लिए संपादित किया। यदि आप मेरे प्रारूपण को स्वीकार नहीं करते हैं, तो क्या मैं URL को छोटा करने का सुझाव दे सकता हूं ताकि दूसरा पैरामीटर अनियंत्रित क्षेत्र के भीतर फिट हो जाए?
फ़िरोज़

5
@ErickBest यह गलत है। "_blank"यह गारंटी देता है कि विंडो / टैब नया होगा। कुछ भी (अन्य विशेष नामों के अलावा) उस खिड़की को विशिष्ट नाम दे रहे हैं, और बाद में उस लक्ष्य के लिंक खिड़की का पुन: उपयोग करेंगे। jsFiddle
एलेक्स

2
यह सिर्फ आधुनिक ब्राउज़रों में पॉप अप ब्लॉक सूचना को ट्रिगर करता है, _blankएंकर क्लिक को बिल्कुल भी अनुकरण नहीं करता है ।
नाथन हॉन्बी

22
पॉपअप ब्राउज़र द्वारा रोका गया।
जितेंद्र पंचोली

24

यदि आप location.hrefपॉपअप समस्याओं से बचने के लिए उपयोग करना चाहते हैं , तो आप खाली <a>रेफरी का उपयोग कर सकते हैं और फिर इसे क्लिक करने के लिए जावास्क्रिप्ट का उपयोग कर सकते हैं।

HTML में कुछ ऐसा

<a id="anchorID" href="mynewurl" target="_blank"></a>

फिर जावास्क्रिप्ट निम्नानुसार क्लिक करें

document.getElementById("anchorID").click();

13
मैं इस समाधान के लिए आशान्वित था, हालांकि यह अभी भी पॉप-अप ब्लॉक (कम से कम क्रोम में) को ट्रिगर करता प्रतीत होता है। मुझे लगता है कि ब्राउज़र को पता है कि यह एक जावास्क्रिप्ट क्लिक है और इसे अलग तरह से व्यवहार करता है।
नाथन हॉन्बी

1
धन्यवाद नाथन। तुम काफी सही हो। आपको अभी भी एक पॉप अप ब्लॉक संदेश मिलता है। मुझे लगा कि मैं इसे ठीक कर दूंगा। सिद्धांत रूप में यह काम करना चाहिए था। एंड्रयू
एंड्रयू क्षेत्र

2
$("#anchorID")[0].click(); jquery के साथ इस घोल का उपयोग करने के लिए।
theBell

1
यदि आप सीधे DOM एलिमेंट को एक्सेस कर रहे हैं, तो LBBell, यह jQuery नहीं है[0]
आंद्रे फिग्यूएरेडो

7

आप इसे एक नई विंडो में खोल सकते हैं window.open('https://support.wwf.org.uk/earth_hour/index.php?type=individual');। यदि आप इसे नए टैब में खोलना चाहते हैं, तो वर्तमान पृष्ठ को दो टैब में खोलें और फिर चलाने के लिए स्क्रिप्ट को हटा दें ताकि वर्तमान पृष्ठ और नया पृष्ठ दोनों प्राप्त हो जाएं।



0

उदाहरण के लिए:

    $(document).on('click','span.external-link',function(){
        var t               = $(this), 
            URL             = t.attr('data-href');        
        $('<a href="'+ URL +'" target="_blank">External Link</a>')[0].click();

    });

काम करने का उदाहरण


पॉपअप ब्राउज़र द्वारा रोका गया।
मिलर 248

1
इसका मतलब है कि आपके पास या तो एक एडब्लॉक है या कुछ और है जो इसे ब्लॉक करता है। डिफ़ॉल्ट व्यवहार सामान्य परिस्थितियों में काम करना चाहिए
एंड्री सेरेगिन

0

आप इस तरह के पैरामीटर के साथ एक एक्शन विधि के लिए एक नया टैब कॉलिंग भी खोल सकते हैं:

   var reportDate = $("#inputDateId").val();
   var url = '@Url.Action("PrintIndex", "Callers", new {dateRequested = "findme"})';
   window.open(window.location.href = url.replace('findme', reportDate), '_blank');

क्या पहली और दूसरी पंक्ति की आवश्यकता है? यह reportDateऔर urlचर के बिना काम नहीं करेगा ?
को फन

आप पैरामीटर (रिपोर्टडेट) निकाल सकते हैं, लेकिन यूआरएल संस्करण महत्वपूर्ण है क्योंकि इसमें कॉल टू एक्शन विधि शामिल है।
21:39 पर प्राइमस्टॉक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.