2011-05-23 26 views
8

Bir window.open() yaptığımızda, method = POST belirtmek için bir seçenek var mı? Varsayılan olarak GET mu?window.open Nasıl Yapılır()

İstediğim şey bu. Üst pencere bazı form parametrelerine (çok sayıda) sahiptir ve bunlar window.open() numaralı sunucuya gönderilmelidir. Sorgu dizesini kullanarak tümünü GET URL'sine eklemek iyi bir fikir değildir.

cevap

14

Bir adla boş bir pencere açmak için window.open() kullanabilirsiniz. Daha sonra, <form> numarasını, bu yeni pencerenin adına başvuran bir "hedef" öznitelikle kullanabilir ve gönderebilirsiniz.

düzenleme Tamam işte fikir. Sen sayfasında bir form var ve bu gizli olabilir:

<form id='theForm' method='post' action='/your/action' target='TheNewWindow'> 
    <input type='hidden' name='param_1' value='whatever'> 
</form> 

Sonra bu gibi penceresine sonuç almak:

window.open('about:blank', 'TheNewWindow'); 
document.getElementById('theForm').submit(); 

kullandığınız pencere adı geçerli olduğundan emin olun tanımlayıcı (JavaScript değişken adı gibi) veya IE bozulur.

Here bir jsfiddle türüdür.

+0

Biraz detaylandırır mısın? Belki küçük bir kod örneği? – Victor

+0

@Kaushik evet, şu anda küçük bir test üzerinde çalışıyorum ... Detayları doğru bir şekilde verdiğimden emin olmak istiyorum :-) – Pointy

+0

Teşekkür ederim. Bu benim için işe yaramayacaktır çünkü bu her zaman yeni bir pencere açacaktır. Ama sadece belirli bir tuşa tıklamanın yeni pencereyi, aynı pencereyi olmasını istediğimi söylemeyi unuttum. Ama çabanız için teşekkürler, – Victor

İlgili konular