name属性にdocumentのメソッド名を指定してはいけない例
id:masa141421356:20111201:1322749788の記事が発端ではてなブックマークで話題になっていたので調べてみた。
検証コード
<!DOCTYPE html> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="http://code.jquery.com/jquery-1.5.min.js"></script> <script> <!-- $(function(){ //native try { console.log( document.getElementById('target') ); }catch($e){ console.log( 'error:' + $e ); }; //jQuery try { console.log( $('#target') ); }catch($e){ console.log( 'error:' + $e ); }; }); --> </script> <style> </style> </head> <body> <form name="getElementById"></form> <div id="target">document.getElementByIdや$('#target')取得できるかな?</div> </body> </html>
結果
chromeでしか試していませんが…
思った通りgetElementByIdが使えなくなりました。
iframeでも同じ現象が発生します。
aタグ,inputタグは問題ありませんでした。