質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

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

Q&A

4回答

9848閲覧

別ドメインのhtmlを読み込む方法

deep

総合スコア20

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

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

0グッド

1クリップ

投稿2017/03/11 22:19

編集2017/03/12 08:02

見本
見本を参考にトライしてみましたが、何も表示されません。
どこが間違っているのでしょうか?

OS⇒windows 10 64bit ブラウザ⇒firefox 51.0.1

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>test</title> <!-- jQuery 読み込む --> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <!-- jquery.xdomainajax.js を読み込む --> <script src="jquery.xdomainajax.js"> </script> <script type="text/javascript"> url = 'http://www.yahoo.co.jp/'; function readHtml(url) { $.ajax({ type: 'GET', url: url, success: function(data) { $('#content').append(data.responseText); }, error: function(xhr, status, err) { alert('html_read_error' + url); } }); } </script> </head> <body> </body> </html>

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

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

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

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

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

CHERRY

2017/03/12 07:43

お使いの OS やWebブラウザは何でしょうか? また、バージョンは、いくつでしょうか?
deep

2017/03/12 08:02

情報修正いたしました。ご指摘ありがとうございます。
guest

回答4

0

直接の回答ではありませんが・・・

jQuery.ajax を使うのは目的ではなくて、「別ドメインのhtmlを読み込む方法」という単なる手段であり、取得したコンテンツをページの中に表示できれば目的が果たせるなら、jQuery.ajax を使うのはやめて iframe を使うとか frameset/frame を使ってはいかがですか?

<iframe> …… インラインフレームを作る http://www.htmq.com/html5/iframe.shtml <FRAMESET> …… ウィンドウをフレームに分割する http://www.htmq.com/html/frameset.shtml

投稿2017/03/12 04:26

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

deep

2017/03/12 07:07

ご回答ありがとうございます。 <html> <head> <title>test</title> </head> <body> <iframe src="http://www.yahoo.co.jp/"></iframe> </body> </html> 何も表示されないのですが、どこかが間違っているのでしょうか?
退会済みユーザー

退会済みユーザー

2017/03/12 07:38 編集

http://www.yahoo.co.jp/ の応答ヘッダを見てみましたが、X-Frame-Options: SAMEORIGIN が含まれていました。それがあると、クロスドメイン要求では iframe 内には表示できないです。 フレーム内のコンテンツを非表示に制御する仕組みは RFC 7034 において規定され、クリック ジャッキングと呼ばれる攻撃に対処するために導入されたものだそうです。
guest

0

function readHtml(url)はなにをトリガーに動くの?

投稿2017/03/11 23:52

toutou

総合スコア2050

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

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

0

id="content" はありますか?

投稿2017/03/11 22:27

Zuishin

総合スコア28660

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

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

0

html

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <title>test</title> 6 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 7 <script src="https://raw.githubusercontent.com/padolsey-archive/jquery.fn/master/cross-domain-ajax/jquery.xdomainajax.js"></script> 8 <script type="text/javascript"> 9function readHtml(url) { 10 $.ajax({ 11 type: 'GET', 12 url: url, 13 success: function(data) { 14 $('#content').append(data.responseText); 15 }, 16 error: function(xhr, status, err) { 17 alert('html_read_error' + url); 18 } 19 }); 20} 21 </script> 22</head> 23<body> 24 <script type="text/javascript"> 25 url = 'http://www.yahoo.co.jp/'; 26 readHtml(url); 27 </script> 28 <div id="content"> 29 </div> 30</body> 31</html>

toutouさんとZuishinさんのご指摘を実装するとこうなるかと。

・ Body内にDIVクラスを定義し"content"要素を追加
・ 引数(URL)でreadHtmlを呼び出し

なお jquery.xdomainajax.js は確実に読み込むようフルパスで記載しました。
ご確認ください。

投稿2017/03/12 04:43

編集2017/03/12 05:27
kurosawa

総合スコア780

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

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

deep

2017/03/12 07:01

ご回答ありがとうございます。 'html_read_error'エラーが出ているようです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問