2013-10-31 6 views
8

मुझे एहसास है कि इस विषय के लिए पहले से ही कुछ प्रश्न हैं, लेकिन वे सभी काफी पुराने लगते हैं .... बस अद्यतित होने की कोशिश कर रहे हैं इस के लिए जवाब:जावास्क्रिप्ट - नए टैब में समान लिंक (समान विंडो)

(ही ब्राउज़र विंडो से) एक नया टैब खोलने के मानक तरीका अभी भी है:

window.open('url', '_blank'); 
window.focus(); 

???

इसके अलावा, मैंने पढ़ा है कि यह उनके ब्राउज़र की उपयोगकर्ताओं की कॉन्फ़िगरेशन पर निर्भर है (चाहे नया पृष्ठ किसी नए टैब या नई विंडो में खुलता है, और यह भी कि नया टैब/विंडो फोकस हो)। ..मैं फोकस को मूल टैब पर रखना चाहता हूं, लेकिन मैं उसी ब्राउज़र विंडो में एक टैब खोलने से अधिक चिंतित हूं (फोकस रखना सिर्फ एक बोनस है)।

तो क्या इस सेटिंग को नए ब्राउज़र में पढ़ने/प्राप्त करने का कोई तरीका है? (क्रोम, एफएफ, यानी) और संभावित रूप से उपयोगकर्ता को अपनी सेटिंग्स बदलने के लिए सूचित करते हैं यदि उन्होंने इसे एक नई विंडो में खोलने के लिए सेट किया है?

उत्तर

12

मैं

<a target='_blank' > 
+1

उद्धृत jQueryUI लिंक एक ब्राउज़र टैब के अंदर एक वेब अनुप्रयोग के लिए टैब जोड़ने के बारे में है, एक ब्राउज़र टैब जोड़ने के बारे में नहीं! –

+2

क्या आप जानते हैं? आप सही हे। वापस देखकर, मुझे नहीं पता कि मैं उससे क्यों जुड़ा हूं। – Giganticus

9

का उपयोग target="_blank" अनुकूल होता है के साथ महान सफलता मिली है।

उदाहरण के लिए। क्रोम में, target="_blank" के साथ एंकर एक नया टैब खोलते हैं, हालांकि, window.open एक पूरी नई विंडो खोलता है।

मैंने window.open को target="_blank" के साथ बदलने के लिए कुछ प्रयोगों की कोशिश की।

पॉपअप अवरोधक

// create an anchor, add to body, trigger click 
var a = document.createElement('a'); 
a.setAttribute('href', 'http://google.com'); 
a.setAttribute('target', '_blank'); 
document.body.appendChild(a); 
a.click(); 

// hijack first anchor, change href, trigger click 
var a = document.getElementsByTagName('a')[0]; 
a.setAttribute('href', 'http://google.com'); 
a.setAttribute('target', '_blank'); 
a.click(); 

// hijack first anchor that has target=_blank, change href, trigger click 
var a = $('a[target="_blank"]')[0]; 
a.setAttribute('href', 'http://google.com'); 
a.click(); 

पॉपअप अवरोधक द्वारा अनुमति

// hijack first anchor that has target=_blank, change href, next document click triggers it 
var a = $('a[target="_blank"]')[0]; 
a.setAttribute('href', 'http://google.com'); 
$(document).click(function(){ 
    $('a[target="_blank"]')[0].click(); 
}); 

// create an anchor, add to body, next document click triggers it 
var a = document.createElement('a'); 
a.setAttribute('href', 'http://google.com'); 
a.setAttribute('target', '_blank'); 
document.body.appendChild(a); 
$(document).click(function(){ 
    a.click(); 
}); 

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

window.open पर मोज़िला प्रलेखन:

https://developer.mozilla.org/en-US/docs/Web/API/window.open

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