tldr: Neden ('inputElemnt içindeki yer tutucu'), yer tutucu özniteliği için yerel desteğe rağmen IE8'de eşittir? Yerel desteği kontrol etmenin iyi bir yolu (öğedeki özellik) değil mi? Javascript kütüphanesi Modernizer kullanmaktadır.Javascript IE8'de yerel yer tutucu desteğini denetle
Uzun: Ben defaultValue (http://unwrongest.com/projects/defaultvalue/) adı verilen küçük jQuery eklentisi var. Yer Tutucu (https://github.com/janjarfalk/jquery.placeholder.js) adlı küçük bir JQuery eklentisi var. Temel olarak HTML5 yer tutucu özelliği için bir geri dönüş.
Son güncellenen bir kodda bu üç kod satırını ekledim. Tarayıcı, yer tutucu özniteliğine yerel destek sağlamışsa Defaultvalue'nın çalışmadığını umuyordu.
if('placeholder' in this){ // this is an input-element return false; }
IE8 ve IE7 dışındaki çoğu tarayıcıda çalışıyor gibi görünüyor. Bazı nedenlerden dolayı, buradaki 'yer tutucu' anahtarını bulur, ancak IE7/IE8'deki yer tutucu özniteliği için herhangi bir destek olmadığını düşünüyorum.
Kodum, Javascript kitaplığı Modernizer'da (http://www.modernizr.com/) bu koddan ilham aldı.
(function(props) { for (var i = 0, len = props.length; i < len; i++) { attrs[ props[i] ] = !!(props[i] in inputElem); } return attrs; })('autocomplete autofocus list placeholder max min multiple pattern required step'.split(' '));
Neyi eksik?
IE özellikleri ve özellikleri hakkında clueless olduğuna göre, (jQuery yaptığı gibi) ikisi de aynı şeydir düşünüyor. Standart olmayan özellikler "expando" özellikler olarak eklenir. Ev sahibi nesnelerin özellikleri üzerinde yinelemek için kullanmak iyi bir fikir değildir. IE <9 hasAttribute'u desteklemiyor, bu da işe yaramıyor. – RobG
Teşekkürler! Yorumunuz çalışan bir çözüm yol açtı. – janjarfalk
Yer tutucu özniteliği IE9'da uygulanmaz ... –