webForumDet fria alternativet

<input placeholder>

JavaScriptur Script - JavaScript, DHTML

2 svar · 5 585 visningar · startad av zcorpan

Medlem sedan dec. 20042 245 inlägg
Frågan#1

Jag implementerade placeholder="" med javascript:

http://simon.html5.org/sandbox/js/placeholder.js

Demo:

http://simon.html5.org/sandbox/js/placeholder-demo.htm

placeholder="" är implementerat i Safari sen 1.3 eller nåt sånt. Dock saknar Safari stöd för DOM-attributet, så det går inte kolla om det finns stöd med skript, så skriptet ovan kommer skriva över Safari:s implementation. :(

Skriptet verkar funka i Safari 3 och Opera 9.5. Det funkar inte i Firefox än pga bugg 396927 och funkar inte i IE7 då IE saknar stöd det mesta som skriptet använder.

Ett sätt att få det funka i Firefox skulle vara att loopa igenom alla <input>s och lägga till blur/focus event listeners när sidan laddas, men det funkar inte om man lägger till fler <input>s efteråt.

Det kanske går att få det funka i IE också, om man byter ut addEventListener mot attachEvent, DOMFocusIn/DOMFocusOut mot focus/blur (som beskrivet ovan), och sumpar stöd för DOM-attributet (eller finns det nåt sätt att implementera getters/setters i IE?).

Medlem sedan juni 20014 421 inlägg
#2

Fast du skulle ju kunna göra något så fult som en UA-sniff för att slippa skriva över safaris implementation.

Safari har inte stöd för document.compatMode heller om jag inte minns fel. Fast det gäller ju samtliga versioner.

Din länk ska väl dessutom vara: http://simon.html5.org/sandbox/js/placeholder-demo.htm och inte .js ;)

Medlem sedan dec. 20042 245 inlägg
#3

Det kanske man kan göra, men jag tycker inte om att sniffa ;) och så vitt jag kan se märker man ingen skillnad, så det gör inte så mycket.

Oops... fixade länken. :)

129 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)