• ベストアンサー

別のサイトのHTMLファイルの内容によって表示を変更したい

JavaScript初心者でございます。おかしなことを言っていたらすみません。 現在、別のサイトに存在するページの内容によって、自分の作ったページを上の表示内容を制御することはできるかを検討しております。 例えば、地震が発生したら、その情報が書き込まれるようなサイト(気象庁等)のページのある部分に“地震”という文字列が表示されることが分かっている場合、自ページを開いたときに、別サイト上のページ内容をJavaScriptで取得し解析して、地震があったら、自ページ内「地震有り!」と表示するようなことを考えています。 (Webで調べてみたのですが、XMLHttpRequest でデータを取得後、パース処理し、その結果に基づき、HTMLの表示を変えることができるようなことができるのではという内容を見つけたのですが、実現方法(それ以前に実現性)が分かりませんでした。) まずは、HTML上のJavaScriptだけ(サーバ上のプログラムを用いず)このようなことが可能なのか、またその方法はどのようにすればよいかをお教えいただきたく存じます。 以上です。

noname#17384
noname#17384

質問者が選んだベストアンサー

  • ベストアンサー
  • guineness
  • ベストアンサー率36% (14/38)
回答No.1

JavaScriptのみで可能です。 と思い調べてみたら、 XMLHttpRequestはセキュリティ上 同じドメインしか通信できないみたいでした。 開いたHPが勝手にどこかのページと通信しだしたら セキュリティホールですね。 できないと考えるべきでしょう。

noname#17384
質問者

お礼

ありがとうございました。 XMLHttpRequestは同じドメインしか通信できないんですね。勉強になりました。 先程サンプルスクリプトを作成し、自サイトは、データ取得できたのですが、他のサイトにアクセスした際、うまくうごかなかったのでおかしいとおもっていたのですが、この仕様のせいだったんですね。納得しました。

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

既に指摘されていますが、別サイトの内容にjavascript からアクセスができないです。 IEを利用している場合でActiveX が許可されているのであれば、 以下のような感じで取得できました。 window.onload=function(){ var IE = new ActiveXObject("InternetExplorer.Application"); IE.Navigate ("http://www.jma.go.jp/jp/quake/") while(IE.busy); while(IE.Document.readyState !="complete"); document.getElementById("QuakeInfo").innerHTML=IE.Document.getElementById("infobox").innerHTML; IE.Quit(); }; //--> </script> … <div id="QuakeInfo" style="border:solid 1px black"></div>

noname#17384
質問者

お礼

ありがとうございます。 IE&ActiveX限定とはいえ、実施できそうな仕組みがありとてもうれしいです。(私の環境でもうまく動きました。)

noname#22259
noname#22259
回答No.2

JSON

noname#17384
質問者

お礼

ありがとうございます。 JSON(初めて聞いて今調べていましたが)を利用した場合、自ドメイン以外のページ内のデータをJavaScriptで取得可能なのでしょうか?調べてみましたが、その部分が分かりませんでした。もしご存知であればお教えいただけませんでしょうか。

関連するQ&A

  • Ajax的な手法で取得したHTMLの表示

    いつもお世話になっております。 XMLHttpRequestで非同期に取得したHTMLをポップアップのように表示させたいのですが、方法がよくわかりません。 <div id="popup"> THIS IS AJAX TEST!! </div> というテキストが取得できるとしたらこのテキストはHTMLとしては認識されていないのでしょうか? pop = document.getElementById('popup'); document.body.appendChild(pop); とやれば表示されるかと思いましたがうまく行きません。 下手な質問になってしまいました。。とにかく、非同期で取得したHTML をJavascriptから操作する方法を教えていただけると嬉しいです。

  • 別HTMLを呼出て値を取得する方法を教えてください

    WEBプログラム初心者です。 メインのHTMLから別のHTMLを呼び出して値を取得しメインのHTMLに表示させたいです。 ■イメージ メインHTMLでボタンを押されたら(javascript ?)、 別ファイルを読み込んで(正規表現?である文字に付随する値)を取得して、 メインのHTMLのテキストエリアにセットするような感じになりますかね? どのように記述すればよろしいでしょうか? Jquery等他言語はよくわからないので、 javascriptだけで実現していただけると助かります。

  • 複数HTMLを1つの別ウィンドウで表示

    javascriptについて質問です。 1HTMLから別ウィンドウ表示したいリンクが複数あります。 クライアントからクリックの度にウィンドウが新たに開かないようにして欲しいとの 依頼があり、下記のjavascriptでウィンドウ名「subwindow」に上書き表示されるようにしました。 ■javascript■ <!-- function subWins(pages){ w=window.open(pages,"subwindow",""); w.focus(); } //--> ■HTML■ <a href="javascript:;"onClick="subWins('リンク先URL')">●●●●●</a> 上記の場合、javascriptをOFFにしているとリンクが効きません。 javascriptをOFFにしていてもウィンドウが開く方法はないでしょうか。 説明不足でしたら補足させていただきます。どうぞ宜しくお願い致します。

  • HTML PCサイトをスマートフォンサイトへ飛ばす

    詳しい方教えて下さい。 HTML記述でPCサイトへアクセスしたスマートフォンを別に用意したスマートフォンページに飛ばす方法を教えて下さい。.htaccess以外でHTMLの記述で実現したいです。 宜しくお願いします。

    • ベストアンサー
    • HTML
  • ユーザータイムを取得してHTMLファイル表示

    新年の挨拶ページ用のHTMLファイル(syougatu.html)を用意しておき、ユーザーが1月1日になったら、sample.htmlファイルにアクセスされたら、javascriptでタイムを取得して、syougatu.htmlファイルを表示する方法はありますか?サーバー側でmod writeとは使用できないので、解決方法を教えて下さい。また、このような類似のサイトがあれば、教えて下さい。

  • HTMLの中に別のHTMLを表示

    HTMLの中に、別のHTMLを表示する必要があって、 インラインフレームを使おうとも思ったのですが、 ネスケで対応してないので困ってます。 何か良い方法ないでしょか?(T T) 誰かHTMLの中に、別のHTMLを表示する方法 教えてください。お願いしまっす。m(_ _)m

  • 外部ファイルを別のHTMLファイルに表示したいと思います

    WEBページのHTMLファイルに外部のファイルから文字を読み込むことが出来たと思います。 Javascriptを使うのではなく、掲示板のようなCGIを利用したいと思うのです。 ホームページの作成にあまり詳しくない人が、HTMLファイルを書き換えてアップロードするのは難しいので、掲示板のように簡単に書き込めるCGIを設置して、そこに書込をすれば特定のページに文字や文章が貼り付けられる、という風に利用したいのです。 うろ覚えなのですが、 ・拡張子をHTMLからSHTMLにするということ ・表示したい部分のソースに<!--#exec cgi="○○.cgi"-->と加えるということ 等が条件だったと思います。 ○○.cgiの部分にあたるスクリプトがどこで公開されていたか、どんな物だったか記憶にないのですが、 ご存じの方があれば教えてください。

  • Excelの値をHTMLに表示できませんか?

    HTMLの画面からリンクを押すと裏でExcelが立ち上がり、必要な情報だけをjavascriptの変数かクッキーかセッションとかで持たせておき、Excelを閉じた後その変数内の情報をHTMLに表示させるなんてことはできない出ようか? (イメージ) HTML 利用者のIDは「2」 ┌──────────────────┐ │リンク          │ │             │ │             │ │             │ └──────────────────┘ Excel A列(ID) B列(データ)  1    A  2    B  3    C HTML ┌──────────────────┐ │リンク          │ │             │ │2さん B         │ │             │ └──────────────────┘ というようにしたいです。 今考えているのは、クッキーでPCにログインしている方のIDが保持されているので、クッキーからIDをjavascriptで取得してき、リンクが押されたときにjavascriptでExcelを開き、データを探して変数に入れ、Excelを閉じ、変数内の情報を画面に書き出そうと思っているのですが、何分javascript初心者なもので、詳しいことは分からず、まずはそもそもそのようなことができるのか?ということを教えていただきたいです。 可能なのであればその方法を実現する方法やソースをご教授いただけないでしょうか? よろしくお願いいたします。

  • 携帯サイトをHTMLで作っています。

    携帯サイトをHTMLで作っています。 TOPページを更新しても、携帯で見ると、以前の内容がそのまま表示されて、「ページ更新」をしないと新しい内容が表示されません。 新しい情報をUPしても、「ページ更新」をされた方にしか伝わらないので困っています。 自動でページ更新する「タグ」など、いい方法がございましたら、お教え下さいませ。 よろしくお願い致します。

    • ベストアンサー
    • HTML
  • javascriptに関しての質問です。

    javascriptに関しての質問です。 例えば、他サイトのページHTMLを読み込み、その一部分(画像ファイルのurl)だけを取得したいと思います。 ----------------- ★自サイトページ ~~~~ <div id="img"> ここに表示 </div> ~~~~ ★別ドメインサイト <head>~</head> <body> <p>あああ</p> <img src="file.jpg"> ←ここのアドレス部分のみを取得したい。 おおおおおおおおおお </body> ----------------- プログラムの知識・経験はありますが、javascriptの知識レベルとしては初心者です。 どのような方法&関数がありますでしょうか、よろしくご教授ください。