içinde jQuery tarafından ayarlanan iframe `name` özniteliğinin garip davranışı Bir dosyayı bir iframe'e göndererek bir ajax stili dosya yükleme yapıyorum ve IE'de bazı garip davranışlar fark ettim (hem de 6 & içinde olduğu anlaşılıyor 8). Temel olarak IE'de form target
iframe'i düzgün bir şekilde göstermez, böylece yanıt yeni bir pencerede görünür (iframe yerine). HTML/JS verilen sırada kümesiyle sorunu yeniden edebilirsiniz:IE
<html>
<head>
<script src="http://code.jquery.com/jquery-1.3.2.js"></script>
<script>
$(document).ready(function(){
var frameName = "myFrame";
var $iframe = $("<iframe src=\"about:blank\" />")
.attr("name", frameName)
.appendTo("body");
var $uploadForm = $("<form action=\"http://www.google.com/search\" />")
.attr("target", frameName)
.append("<input type=\"text\" name=\"q\" />")
.append("<input type=\"submit\" />")
.appendTo("body");
});
</script>
</head>
<body>
</body>
</html>
(bir cevap göndermeden önce), bazı soruşturma (IE8'ın geliştirici araçlarını kullanarak) yaptım ve .attr("name", frameName)
aslında ekleyerek anlaşılıyor sadece yerine submitName="myFrame"
özniteliği. Buna dayanarak, ben biraz nastier iframe oluşturma kodu değiştirerek sorunu çözüldü: istendiği gibi
var $iframe = $("<iframe src=\"about:blank\" name=\"" + frameName + "\" />")
.appendTo("body");
Bu değişikliği yapmak, iframe içine formu yazısı yapar. Neden .attr("name", ...)
eser
- beklenen yok gibi:
Sorularım nelerdir?
- JQuery'de bir hata mı, IE'deki bir hata mı (elbette değil!?!), Yoksa belirgin bir şey eksik miyim?
submitName
özniteliği nereden geliyor & Amacı nedir?
Arka plan için teşekkürler, bu bir ex-IE geliştiricileri gönderme (ben aslında gerçeğini kabul hayal edemesem de, P), ben almak için gidiyorum gibi bir cevap olarak düşünüyorum, bu yüzden kabul ediyorum o. Doğru doktrininiz varsa en azından hatanın gerçekten IE8'de kaybolduğunu bilmek güzel. – Alconja
'getElementsByName', radyo gruplaması ve benzeri, 'name' öznitelikleri aynı kalsa ve yalnızca 'submitName'' öznitelikleri değişse bile çalışıyor gibi görünüyor - bahsettiğiniz şeylerle ilgili herhangi bir sorun yaşadınız mı? Bunu ie8'de ie7 uyumluluk modunda test ettim ve her şey işe yaradı. – cic
Bazı bilgi: http://thunderguy.com/semicolon/2005/05/23/setting-the-name-attribute-in-internet-explorer/ – cic