ブラウザー画面にボタンとラベル定数と入力ボックスがあります。現在はこれをIE6で表示しているアプリがあり、Edge化を目指しています。
ボタンを押すとこのhtml内の全データをgetElementsByTagName('html')で取得してサーバーに送信する処理になっています。
※追記DOCTYPEにHTML 4.01が指定されていたのでHTMLのバージョンは4です
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=8"> <script> function reqestHardcopy() { var printData = document.getElementsByTagName('html')[0].innerHTML; console.log(printData); //send printData to server } </script> <input type="button" onclick=reqestHardcopy() value="button"> <p>Input Data</p> <input type="text">
上記のソースのconsole.logの内容を見るとIE6では入力値の"123456"が取得できていますがEdgeだと取得できなくなりました。
IE6のconsole.log <HEAD> <META content="text/html; charset=UTF-8" http-equiv=Content-Type> <META content=IE=8 http-equiv=X-UA-Compatible <SCRIPT> function reqestHardcopy() { var printData = document.getElementsByTagName('html')[0].innerHTML; console.log(printData); //send printData to server } </SCRIPT> </HEAD> <BODY><INPUT onclick=reqestHardcopy() type=button value=button> <P>Input Data</P><INPUT value=123456></BODY> Edgeのconsole.log <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=8"><script> function reqestHardcopy() { var printData = document.getElementsByTagName('html')[0].innerHTML; console.log(printData); //send printData to server } </script> </head><body><input type="button" onclick="reqestHardcopy()" value="button"> <p>Input Data</p> <input type="text"></body>
おそらくはgetElementsByTagNameの仕様が変わっているのだと理解はしていますが、アプリの互換性を保つという要件を実現しなければなりません。
アプリの互換性を保つためにEdgeでも<INPUT value=123456>のように取得できようにするにはどのような対策があるでしょうか?
回答2件
あなたの回答
tips
プレビュー