Frits は問題を解決できました。私は間違いなく彼のアドバイスに従い、すぐに使用をやめbody onload
ます。
例えば:
(function run(){
var data = '{"id":1,"name":"Joe Smith","data":{"email":"smith@gmail.com","phone":"555-123-4567","title":"CFO","instanceControllerTagLibraryApi":{"developmentMode":false}},"children":[],"instanceControllerTagLibraryApi":{"developmentMode":false}}';
function init(){
console.log(data, JSON.parse(data));
}
if (window.addEventListener) {
window.addEventListener('load', init);
} else if (window.attachEvent) {
window.attachEvent('load', init);
}
})();
http://jsfiddle.net/userdude/eQRBk/1/
(および古い IE バージョンwindow.addEventListener
のレガシー)の使用に注意してください。window.attachEvent
そして、それconsole.log
は Chrome と Firebug でうまく機能します。私の意見では、IE のコンソールは、オブジェクトをログに記録する方法が少しイライラします。
あなたが与えたものを使用して、別の方法で処理することができます (そして、私はそうすべきだと思います)。申し訳ありませんが、私は Java に精通しておらず、JSP しか知りません (かろうじて)。そう...?
<%
String jsonString = "'{\"id\":1,\"name\":\"Joe Smith\",\"data\":{\"email\":\"smith@gmail.com\",\"phone\":\"555-123-4567\",\"title\":\"CFO\",\"instanceControllerTagLibraryApi\":{\"developmentMode\":false}},\"children\":[],\"instanceControllerTagLibraryApi\":{\"developmentMode\":false}}'";
%>
<script>
(function run(){
var data = <%=jsonString%>;
function init(){
console.log(data, JSON.parse(data));
}
if (window.addEventListener) {
window.addEventListener('load', init);
} else if (window.attachEvent) {
window.attachEvent('load', init);
}
})();
</script>
そして、その JSP ページをhead
またはに挿入するbody
と、問題なく動作します。また、そのデータを JSP ページに動的に挿入するように設定できると思います。でも、言ったように、私はここで手を振っています。