[解決済み] JavaScriptからscriptタグでJSONを読み込むには?
質問
静的なJavaScriptを使用し、パラメータとしてJSON文字列を渡したい、動的に生成されたページがあります。私はこのアプローチがGoogleによって使用されているのを見たことがあります( Googleの+1ボタン。彼らはどのようにしているのでしょうか? ).
しかし、JavaScriptからJSON文字列をどのように読み取ればいいのでしょうか?
<html>
<head>
<script src="jquery-1.6.2.min.js"></script>
<script src="myscript.js">{"org": 10, "items":["one","two"]}</script>
</head>
<body>
Hello
</body>
</html>
このJavaScriptでは、JSONの引数である
{"org": 10, "items":["one","two"]}
をHTML文書から取得したいと思います。jQueryでやるのがいいのか、やらないのがいいのかわかりません。
$(function() {
// read JSON
alert("the json is:")
})
どのように解決するのですか?
スクリプトの宣言をこのように変更するのです。
<script id="data" type="application/json">{"org": 10, "items":["one","two"]}</script>
typeとidフィールドに注目してください。その後に
var data = JSON.parse(document.getElementById('data').textContent);
はどのブラウザでも問題なく動作します。
は
type="application/json"
は、読み込み中にブラウザが解析するのを防ぐために必要です。
そして、なぜ
textContent
の代わりに
innerHTML
または
innerText
でJsonの生テキストを読むことができるのは
innerHTML
はコンテンツを HTML としてパースしようとするため、パフォーマンスが低下し、パースバグや XSS 攻撃の可能性があるからです。
innerText
は生のテキストを取得せず、代わりに人間が見ることができるテキストを探しますが、一方
textContent
は純粋なテキストをそのまま取得します (これはあなたが望むことです)。参照
https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent
を参照してください。
innerHTML
と
innerText
が悪い。
関連
-
[解決済み] 正しいJSONコンテンツタイプは何ですか?
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JSONでコメントを使用することはできますか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み] チェックボックスが選択されているかどうかを確認するjQuery
-
[解決済み] オブジェクトの配列からReactコンポーネントをレンダリングする
-
[解決済み] jQueryで入力ファイルが空かどうかをチェックする方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ジェスト あるクラスの特定のメソッドをモックする方法
-
[解決済み] JavaScript で範囲を作成する - 奇妙な構文
-
[解決済み] 文字列がすべて同じ部分文字列で構成されているかどうかを調べるにはどうすればよいですか?
-
[解決済み] JavaScriptで、ある文字列が別の文字列の中に出現するすべてのインデックスを見つけるにはどうすればよいですか?
-
[解決済み] javascript includes() 大文字小文字を区別しない
-
[解決済み] JavaScript のオブジェクトの配列を比較し、最小値/最大値を取得する
-
[解決済み] Node.jsのES6クラスをrequireで作る
-
[解決済み] querySelectorAllがない場合、ライブラリを使用せずに属性で要素を取得する?
-
[解決済み] Fetch: ステータスがOKでない場合、プロミスを拒否し、エラーをキャッチするか?
-
[解決済み] JavaScriptデータフォーマット/プリティプリンタ