🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

5870閲覧

外部のHTMLファイルを別HTMLページ内に反映させたい

退会済みユーザー

退会済みユーザー

総合スコア0

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2019/10/01 06:00

編集2019/10/01 06:47

下記のソースをjsファイルの様な外部のHTMLファイルとして作成し別のHTMLファイル内に表示させたいです
JavaScriptへの値の受け渡しも行えるようにしたいです

HTML

1<select id="item" name="item"> 2 3<option default value="1">好きなアクセサリー</option> 4<option value="2">指輪</option> 5<option value="3">ネックレス</option> 6<option value="2">ブレスレット</option> 7<option value="1.5">イヤリング</option> 8 9</select>

iframeで上記のソースを表示させる方法を試しましたがJavaScriptへの値の受け渡しが上手くいかず動作しませんでした

JavaScript

1var item; 2item=document.getElementById("item").value;

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/10/01 06:10

どういう動作を想定しているかもっと具体的に記載いただけますか? また、ご自身が試したこと調べたことを記載してください
yambejp

2019/10/01 06:27

さっぱりわからないのに加えてoptionの2番め以降の値が全部2なので 条件分岐も失敗しそうです
miyabi_takatsuk

2019/10/01 06:49 編集

もしかして、 HTML Importsのことですか?? Web Componentsの仕様から、外部HTMLを読み込むというやつです。 いや、iframeでもいいなら、とにかく外部のHTML使えればそれでいいってことですね・・・。
m.ts10806

2019/10/01 06:51

iframeでもなんでもいいですが、何が外部で何が別htmlなのかこの内容だけでは不明瞭です。 コードと共にそれぞれ明示してください。
miyabi_takatsuk

2019/10/01 07:15

BAいただいておいてなんですが、 m.ts10806さんのご質問の部分も、質問本文に記載してください。 外部というのが、同じサーバー内なのか、はたまた、別サーバーに置かれているものなのか、 ローカルで完結する(ローカル上で、あるHTMLファイルから別ファイルのHTMLを読み込みたい)などのやりたいこと、状況によって、話はまるで変わってきます。 よって、回答しておいてなんですが、私の回答が正しくならない可能性があります。
m.ts10806

2019/10/01 07:40

質問者から「どのように解決としたのか」を回答者に伝えるのもマナーです。 ガイドラインにあります https://teratail.com/help/question-tips#questionTips4-2 回答の意図を汲み取れているか、きちんと活かせることができそうかを伝えてあげてください。 回答者本人も仰っていますが、要件次第ではもっと適切な対応方法が存在することもありえます。 あくまで「問題解決」を主眼に置いてもらいたいです。 (回答者側としては回答のお礼よりも、きちんと問題が解決できたか理解できたか伝わったかの方が大事です)
guest

回答1

0

ベストアンサー

Web Componentsの仕様の一つである、HTML Importsを使えば、
HTMLとJavaScriptのみで、外部HTMLを容易に使用することができます。

Web Components

しかし、現代においても、まだこの仕様をサポートしているブラウザはごく一部で、
Chrome、Operaのみが標準サポートとなっています。

なので、大きく分けて二点ほど、現代においても外部のHTMLを使用する方法を記載します。

  • PHPなどの、サーバーサイドテクノロジーを使う

サーバーサイドのスクリプトなどを使えるサーバーなのであれば、これが一番手っ取り早いです。
やり方は、ご自身でお調べください。

  • JavaScriptにて、iframe内のコンテンツ要素を、読み込む方法

クライアントサイドでやるなら、現代ではこの方法が一番ポピュラーですが、ブラウザのセキュリティがうるさい現代だとかなりやりずらくなっています。
ローカルファイルならびに、別ドメインの外部HTMLである場合、ブラウザのオプション起動(ローカルの場合)、サーバーの設定(別ドメインの外部HTMLがおいてあるサーバーで、クロスドメインアクセスを許可する)をしないと、読み込んで中の要素を使用しようとすると、CORSエラーがでて、読み込みさえできません。
これは、セキュリティ的に、外部からのサイト改変やらの攻撃を防ぐための仕組みなので、
上記の工夫や設定をするほかありません。
こちらの方法も、まずはご自身で調べてみましょう。

投稿2019/10/01 07:03

編集2019/10/01 07:07
miyabi_takatsuk

総合スコア9555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問