2011-06-09 13 views
67

मेरे पास एक 'ओपन' बटन है जो एक लिंक की गणना करता है जिसे एक नए टैब में खोला जाना चाहिए। मैं इस्तेमाल करने की कोशिश:मैं नए टैब में एक लिंक कैसे खोल सकता हूं (और नई विंडो नहीं)?

window.open(url, '_blank'); 

लेकिन यह एक नई विंडो खोलता है।

मैं भी निम्न विधि की कोशिश की:

<form id="oform" name="oform" action="" method="post" target="_blank"> 
</form> 

... 

document.getElementById("oform").action = url; 
document.getElementById("oform").submit(); 

फिर भी, एक नई विंडो खोला जाता है, एक नया टैब के बजाय।

के साथ का उपयोग करते समय, लिंक एक नए टैब में खोला जाता है।

क्या कोई समाधान है?

+1

आप किस ब्राउज़र का उपयोग कर रहे हैं? – VAShhh

+0

क्रोम में '

सबमिट होने पर एक नए टैब में खुलता है, इसलिए यह ब्राउज़र पर निर्भर करता है। – pimvdb

+0

मैं क्रोम का उपयोग करता हूं, और फिर भी यह नए टैब –

उत्तर

65

CSS3, का समर्थन करता है "नए टैब में खोलें" संपत्ति target-new

target-new: window | tab | none; 

अद्यतन [2016] से: इस विधि कभी नहीं CSS3 कल्पना में इसे बनाया है, टिप्पणियों में से एक को इंगित करता है के रूप में। इसका इस्तेमाल नहीं किया जाना चाहिए। हालांकि, यह देखा जा सकता है कि अधिकांश आधुनिक ब्राउज़र किसी भी नए टैब में target='_blank' लिंक खोलते हैं, जब तक कि कोई उसके बाद तुरंत नए टैब का आकार बदलने का प्रयास नहीं करता। हालांकि, विनिर्देशों में इस व्यवहार को मजबूर करने के लिए एक तंत्र नहीं प्रतीत होता है।

<a href="some url" target="_newtab">content of the anchor</a> 

वरना, this विधि का उपयोग तुरंत विंडो का आकार बदलने के लिए, करने के लिए:


[2011] कि अच्छी तरह से समर्थित है एक नए टैब में खोलने के लिए मजबूर करने की एक विधि के लिए, निम्न कोशिश सुनिश्चित करें कि पॉपअप अवरोधक आपके पॉपअप को नहीं मारते

+0

की बजाय नई विंडो में खुलता है, मुझे यकीन नहीं है कि मैं इसका उपयोग कैसे कर सकता हूं –

+0

@Erik यह ब्राउज़र कुछ समय पहले इसका समर्थन करना शुरू कर देगा। अभी के लिए, आप उस व्यवहार को बल देने के लिए, फ़ायरफ़ॉक्स में कॉन्फ़िगरेशन को कॉन्फ़िगर कर सकते हैं। –

+0

लेकिन कुछ साइटें इसे कैसे प्रबंधित करती हैं? –

9

CSS3 लक्ष्य-नए विकल्प @ anirudh4444 के अलावा, आप शायद और अधिकतर महत्वपूर्ण रूप से नहीं कर सकते हैं। आप उपयोगकर्ता के अनुभव को नियंत्रित करने की कोशिश कर रहे हैं, जब इसे उपयोगकर्ता को छोड़ दिया जाना चाहिए।

+0

मुझे कुछ साइटें हैं जिनमें 'लॉग इन' बटन पर क्लिक करने से एक नया टैब खुलता है –

+3

क्या यह सही बनाता है? – Kon

+0

कई ब्राउज़र पॉप-अप ब्लॉक करते हैं। मैं चाहता हूं कि लिंक नए टैब में खोला जाए, इसलिए इसे –

0

क्रोम में निम्नलिखित काम करता है:

<script> 
    function buildAndGo() { 
     var aEl = document.getElementById('missingLink'); 
     aEl.href = "#" + resultOfSomeCalculation(); 

     var e = document.createEvent('MouseEvents'); 
     e.initEvent('click', true, true); 

     aEl.dispatchEvent(e); 
    } 
</script> 
... 
<button onclick="buildAndGo()">Do it</button> 
<a href="#" id="missingLink" target="_blank" style="visibility: hidden;"></a> 

निम्नलिखित स्रोतों से कार्य कोशिश करते हैं और एक आईई संस्करण काम कर पाने के लिए: Selenium BrowserBot, YUI User Action

0

आपका प्रपत्र लक्ष्य = "_ blank" (सहित एक अग्रणी अंडरस्कोर) जबकि आपके सरल लिंक में अग्रणी अंडरस्कोर के बिना लक्ष्य = 'खाली' है। "_blank" एक विशेष कार्य निर्दिष्ट करने वाला एक आरक्षित शब्द है, लेकिन "खाली" एक विशिष्ट, संभवतः नई, विंडो का नाम है। यही कारण है कि आप अलग-अलग परिणाम प्राप्त कर रहे हैं। दोनों पॉप-अप हैं, लेकिन विभिन्न प्रकार हैं।

प्रत्येक उपयोगकर्ता के पास इस परम नियंत्रण है कि पॉप-अप को एक नई विंडो या एक नया टैब खोलना चाहिए या नहीं। इसके बारे में आप कुछ भी नहीं कर सकते हैं।

3

मैं "फ़ॉर्म" तत्व का उपयोग करके इस समस्या को हल करने में सक्षम था।

function openNewTab(link) { 
    var frm = $('<form method="get" action="' + link + '" target="_blank"></form>') 
    $("body").append(frm); 
    frm.submit().remove(); 
} 

पूरा कार्यान्वयन और जानकारी के लिए मेरी पोस्ट http://mukesh.in/force-open-new-tab-in-browsers-instead-of-windows/

जाएँ या इस JSFiddle

+3

का उपयोग करता हूं, जबकि यह लिंक प्रश्न का उत्तर दे सकता है, यहां उत्तर के आवश्यक हिस्सों को शामिल करना बेहतर है और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक किए गए पृष्ठ में परिवर्तन होने पर लिंक-केवल उत्तर अमान्य हो सकते हैं। –

+0

पहला लिंक टूटा हुआ है – Dairo

-3

देखने के लिए एक कड़ी हाँ केवल लक्ष्य टैग काम करेगा का उपयोग कर के मामले में।

लेकिन एक बटन के मामले में onclick समारोह के साथ के बजाय यह कर बस _blank

window.open (यूआरएल, लक्ष्य) समारोह का उपयोग करें का उपयोग करके देखें - यह एक यूआरएल लेता है, और एक लक्ष्य विंडो नाम है, जो लक्ष्य = "कुछ" एक लिंक पर विशेषता के रूप में एक ही व्यवहार करती है .... इस तरह

button(type="button", onclick="window.open('auth/google', '_blank');") 

यह काम करना चाहिए।

+2

'window.open (url, '_blank'); 'वह कोड है जो ओपी कहता है कि काम नहीं करता है। – RichieHindle

6

आप निम्न में से किसी एक का उपयोग कर सकते हैं, मैंने उन सभी को 6 अलग-अलग ब्राउज़रों में परीक्षण किया। (गूगल क्रोम, मोज़िला फ़ायरफ़ॉक्स, माइक्रोसॉफ्ट इंटरनेट एक्सप्लोरर, ओपेरा, कश्मीर Meleon * और Seamonkey।)

  1. <a href="blaah" target="_blank">Blaah</a>
  2. <a href="blaah" target="_tab">Blaah</a>
  3. <a href="blaah" target="_new">Blaah</a>

वे सब ठीक उसी काम करते हैं, और पसंद वरीयता तक पूरी तरह से है।

* के-मेलेन, किसी कारण से मैंने उस पृष्ठ को खोला जब मैं लिंक पर क्लिक करता था।

+1

http://stackoverflow.com/a/4964223/18192 देखें। हालांकि वे सभी काम कर सकते हैं, '_blank' की सिफारिश की है। – Brian

+1

वे पहली बार इस तरह के लिंक पर क्लिक करने पर काम कर सकते हैं। लेकिन दूसरी बार जब आप इस तरह के लिंक पर क्लिक करते हैं, तो यह एक नया टैब खोल सकता है या यह उस यूआरएल को उसी टैब में खोल सकता है जो उसने पिछली बार इस्तेमाल किया था। केवल 'target = "_ blank" 'को हमेशा एक नए टैब का उपयोग करने के लिए परिभाषित किया जाता है (या विंडो यदि आपका ब्राउज़र उस तरह से कॉन्फ़िगर किया गया है)। –

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