innerHTMLって
XHTMLだとFirefoxじゃ動かないことを知った…。
HTMLだといけるんだけど、なんでだこれ。
例えば
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>innerHTML</title> <script type="text/javascript"> <!-- function inner(){ test.innerHTML = "インナー"; } // --> </script> </head> <body onLoad="inner()"> <p id="test"></p> </body> </html>
これだとちゃんと「インナー」って出るけど
<!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"> <head> <title>innerHTML</title> <script type="text/javascript"> <!-- function inner(){ test.innerHTML = "インナー"; } // --> </script> </head> <body onLoad="inner()"> <p id="test"></p> </body> </html>
というふうにXHTMLにすると、IEは表示されるけど、Firefoxだとされないわけです。
しょうがないのでdocument.writeでいってみる。
<!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"> <head> <title>innerHTML</title> <script type="text/javascript"> <!-- function inner(){ document.write("<p>インナー</p>"); } // --> </script> </head> <body> <script type="text/javascript"> inner(); </script> </body> </html>
これだとFirefoxでもいけた。
ブラウザのあれこれとか大変ですこれ。