2011-04-08 25 views
5

Extjs BoxComponent kullanarak HTML bağlantısı (<a>) oluşturdum ve gayet iyi çalışıyor. Ancak, bağlantıyla ilişkilendirilmiş sabit bir URL yerine, kullanıcı bağlantıyı tıkladığında href özelliğini güncelleyebilmek istiyorum.Ekstralar: Tıklamada bağlantıyı değiştir (<a>) '

Aşağıdaki kodda, kullanıcı bağlantıyı kite getirdiğinde href güncellenir ve HTML öğesinde FireBug kullanarak bunu doğrulayabilirim. Ancak yeni sayfa açılışı href'a eklememi kaçırıyor.

Soru: onClick'i onClick üzerinde değiştirmek için çok mu geç yoksa href'yi yanlış şekilde değiştirdiğim için mi?

Kod:

xtype: 'box', 
html: '<a href="www.google.com" target="_blank">Link to google</a>',   
listeners: { 
    render: function (c) {   
     c.getEl().on(
      'click', 
      function() { 
       this.el.child('a', true).href = 'www.google.com/#q=' + some_dynamic_value; 
      }, 
      c, 
      { stopEvent: false } 
     ); 
    } 
} 

cevap

3

Bu, click olay yerine mousedown olayını kullanarak çalışabilir.

atın: http://jsfiddle.net/sadkinson/rF5TQ/15/

+0

İyi görünüyor, ama bu güvenlikte bir * delik * olarak görülebileceğinden korkuyorum (eğer ** BugFinder * * "click" etkinliği hakkında haklıdır ve sonunda kapanacaktır. Ama cevabınız için çok teşekkürler :) – Chau

1

olası. Bağlantınızın güncellenmesi gereken bağlantının, kullanıcının bağlantıyı tıklayana kadar beklemek yerine değiştirilebilmesi mümkün değil mi?

Bazı tarayıcıların bunu görmezden geleceğini düşünürdüm, çünkü bu, zararlı olmanın etkili bir yolu olurdu. "Google" demek için bir bağlantı koymak ve sonra sizi virüsün bulunduğu siteye yönlendirmek, hatta bir bağlantının nereye gideceğini görmek isteyen en hassas kullanıcı bile çok geç olana kadar google'ı görecektir.

+0

# 1 - evet bu mümkün, ama yine de merak ediyorum bu yapılabilir veya edilip edilemeyeceğini değil :) # 2 - Ben bu sefer haklı olabileceğini tahmin edebilirsiniz: S – Chau

+0

Eğer ayağa kalkarsanız, ayakta dururken ayağın ayakkabısını değiştirir misiniz? Çoğu şeyin olabildiğince geçersiz kılınması garip görünebilir, ancak, kötü niyetli davranışları engellemeyi düşünmem de bunun mantıklı bir şey olacağını düşünmüyorum .. Bir yan düşünce olarak, aynı zamanda Bu bölüm .. aksi takdirde değişebilir, ama yanlış gitmediğinden ve orijinal davranışını yaptıktan sonra – BugFinder