2011-06-09 23 views
67

Yeni bir sekmede açılması gereken bir bağlantıyı 'hesaplayan' bir 'Aç' düğmesine sahibim. Ben kullanmayı deneyin:Bir bağlantıyı yeni sekmede nasıl açabilirim (yeni pencerede değil)?

window.open(url, '_blank'); 

Ama bu yeni bir pencere açar. yerine yeni bir sekmenin,

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

... 

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

Yine yeni bir pencere açılır:

Ben de aşağıdaki yöntemi denedik.

ile target='blank' arasındaki bağlantıyı kullanırken, bağlantı yeni bir sekmede açılır.

Çözüm var mı?

+1

Hangi tarayıcıyı kullanıyorsunuz? – VAShhh

+0

Chrome'da bir '

', gönderildiğinde yeni bir sekmede açılır, bu nedenle tarayıcıya bağlıdır. – pimvdb

+0

Ben krom kullanıyorum, ve henüz yeni pencerede açıyor –

cevap

65

CSS3 özelliği [2016] target-new

target-new: window | tab | none; 

Güncelleme tarafından, "Yeni sekmede açık" destekler: yorumlarla birini gösterir olarak bu yöntem, CSS3 spec haline getirdiler olmadı. Bu kullanılmamalıdır. Ancak, yeni tarayıcıların çoğu yeni sekmede target='_blank' bağlantılarını açtığından, yeni sekmeyi hemen sonra yeniden boyutlandırmaya çalışmadığı görülebilir. Bununla birlikte, bu davranışı spesifikasyonlara zorlamak için bir mekanizma görünmemektedir.

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

hemen pencereyi yeniden boyutlandırmak için this yöntemi kullanmak için:


[2011] de desteklenmektedir yeni bir sekmede açılmasını mecbur etmenin bir yöntemi için aşağıdakileri deneyin Açılır pencere engelleyicilerinin, açtığınız pencereyi öldürmediğinden emin olunuz.

+0

yeni pencerede açılacağını bilmiyorum nasıl kullanacağımı anladım –

+0

@Erik Bu tarayıcılar bunu desteklemeye başlamadan önce bir süre olacak. Şimdilik, yapabileceğiniz tek şey, bu davranışı zorlamak için şöyleki: config dosyasında değiştirmektir. –

+0

ama bazı siteler bunu nasıl yapıyor? –

9

Belirtilen CSS3 hedef-yeni seçeneği @ anirudh4444 dışında, yapamayacağınız ve en önemlisi muhtemelen yapmamalısınız. Kullanıcının deneyimini kontrol etmeye çalışıyorsunuz, bu büyük olasılıkla kullanıcıya bırakılmalıdır. Chrome'da

+0

'Oturum Aç' düğmesine basmanın yeni bir sekme açtığı bazı siteleri biliyorum –

+3

Bu doğru mu? – Kon

+0

Tarayıcıların çoğu pop-up'ları engeller. Bağlantının yeni sekmede açılmasını istiyorum, bu yüzden engellenmeyecekti –

0

aşağıdaki çalışır:

<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> 

aşağıdaki kaynaklardan Çalışma denemek ve bir IE sürümü çalışma almak için: Selenium BrowserBot, YUI User Action

0

Formunuz = "_ blank" (dahil hedefi var basit bir bağlantıya sahipken, ana linkiniz hedef alt çizgiye sahip değilken 'boş'. "_blank", belirli bir eylemi belirten ayrılmış bir sözcüktür, ancak "boş", muhtemelen yeni bir pencerenin adıdır. Bu yüzden farklı sonuçlar alıyorsunuz. İkisi de pop-up'lar, ama farklı tipler.

Her kullanıcı, bir açılır pencerenin yeni bir pencere mi, yoksa yeni bir sekme mi açması gerektiği konusunda nihai denetime sahiptir. Bununla ilgili yapabileceğin bir şey yok.

3

Bu sorunu "form" öğesi kullanarak çözmeyi başardım.tam uygulanması ve ayrıntılar için

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

Gönderimimi http://mukesh.in/force-open-new-tab-in-browsers-instead-of-windows/

ziyaret Ya evet sadece etiketi çalışacak hedefi kullanarak bir bağlantı olması durumunda bu JSFiddle

+3

Bu bağlantı soruyu yanıtlayabilirken, cevabın temel kısımlarını buraya dahil etmek ve referans için bağlantı sağlamak daha iyidir. Bağlantılı sayfa değiştiğinde yalnızca bağlantı yanıtları geçersiz olabilir. –

+0

ilk bağlantı bozuk – Dairo

-3

bakın.

Ama bir düğmeye durumunda onclick fonksiyonu ile bunu yerine sadece _blank

kullanın window.open (url, hedef) yerine fonksiyon kullanmayı deneyin - bir URL alır ve bir Bu

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

Bu çalışması gerekir gibi .... bir bağlantıyı target = "bir şey" niteliği olarak aynı şekilde davranır pencere adını, hedef almaktadır.

+2

'window.open (url, '_blank');' tam olarak OP'nin çalışmadığını belirten koddur. – RichieHindle

6

Aşağıdakilerden herhangi birini kullanabilirsiniz, hepsini 6 farklı tarayıcıda test ettim. (Google Chrome, Mozilla Firefox, Microsoft Internet Explorer, Opera, K-meleon * ve 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>

Hepsi aynı çalışır ve seçim tamamen tercih edilir.

* K-meleon, bir sebepten dolayı linki tıkladığımda açık olduğum sayfayı açtı.

+1

Bkz. Http://stackoverflow.com/a/4964223/18192. Hepsi işe yarayacak olsa da, '_blank' önerilir. – Brian

+1

Böyle bir bağlantıyı ilk tıklattığınızda hepsi işe yarayabilir. Ancak, böyle bir bağlantıyı ikinci kez tıkladığınızda yeni bir sekme açabilir veya bu URL'yi son kez kullandığınız sekmede açabilir. Her zaman yeni bir sekme (veya tarayıcınız bu şekilde yapılandırılmışsa) kullanmak için yalnızca 'target =" _ blank "' tanımlanmıştır. –

İlgili konular