Satır içi fbml tekniği (iframe'in tersi) kullanılarak gömülmüş bir dizi "Beğen" düğmesi içeren bir sayfam var. Yeterince basit. Sayfa iyi işliyor, her şey beklendiği gibi çalışıyor. ANCAK Neden doğru fbml xmlns kullanarak <fb:xxx> fbml öğeleri karşılaşılırken DOM yeniden başvuruyor?
...kez ben IE render zamanlarını başlangıç sayfasının radikal bozulmasını fark ediyorum belgeye xmlns:fb="http://www.facebook.com/2008/fbml"
ad alanı beyanı ekleyin. Daha yakından inceleme (ie8 geliştirici araçlarını kullanarak), DOM'ın tamamının, sayfanın yüklenmesinden kısa bir süre sonra tekrar tekrar "yenilenmesi" veya "yeniden" göründüğünü ortaya çıkarır. Bazı başka mutasyonlar, yeniden akıtma sayısının, belgede bulunan <fb:xxx>
elemanının sayısı ile orantılı olarak orantılı olduğunu ortaya çıkarmaktadır.
xmlns bildiriminin kaldırılması sorunu ortadan kaldırır.
Bunu daha önce hiç kimse yaşadı mı?
GÜNCELLEME:
Bazı başka kazma biraz daha özelliklerini ortaya çıkarmıştır ... konu IE benzeri herhangi satır içi kodları yeniden yürütme ve dahil sayfayı yeniden aktığını gerçekten de öyle. Nedeni, xmlns'in kendi başına eklenmesi, butonların kendilerinin xfbml render edilmesi gibi görünmemektedir. Xmlns eklenmesi xmlns olmadan xfbml görüntülemeyi tetiklemiştir, düğmeler hiç bir zaman ilk sırada yer almaz. Aşağıdaki işaretleme sorunu göstermektedir.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<script type="text/javascript">
alert('some inline js');
</script>
</head>
<body>
<div id="fb-root"></div>
<div>
<fb:like href="http://example.local/1" layout="button_count" show_faces="false" width="80" action="like" font="arial" colorscheme="light"></fb:like>
<fb:like href="http://example.local/2" layout="button_count" show_faces="false" width="80" action="like" font="arial" colorscheme="light"></fb:like>
<fb:like href="http://example.local/3" layout="button_count" show_faces="false" width="80" action="like" font="arial" colorscheme="light"></fb:like>
</div>
<script src="http://connect.facebook.net/en_US/all.js#xfbml=1" type="text/javascript"></script>
</body>
</html>
Örneğin, yukarıdaki örnek 3 uyarı oluşturur, yalnızca bir tane görmeyi beklerdim.
, bu gerçekleşiyor [burada] (http://jsfiddle.net/alexdickson/NStxL/) senin için de? – alex
@alex Sadece IE9'da bir uyarı alıyorum, artık test etmek için IE8'e sahip değilim – Phil