人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

javascript で 別ウィンドウのスクリプトを操作する場合の制限について、教えてください
IE6で動作検証をしています

やりたいこと
・ブラウザを立ち上げ、ページAを表示
・ブラウザを別に立ち上げ、ページBを表示
・ページAでボタンをクリックしたときに、ページBの javascriptのメソッドをコール

できないこと
・ページAとページBが別サーバのとき、ドメイン規制にひっかかってしまい、実行できない

知りたいこと
・自サーバでイントラ内環境であるため、ドメインのつけ方で回避できるようならつけ方を教えてほしい(IIS6.0)
ページAとページBは別サーバにしなければいけない前提です
・ドメインが別であっても、実行できるような方法
ただし、WSHを使わない方法で(http://d.hatena.ne.jp/fits/20090301/1235879562)

●質問者: you_got
●カテゴリ:コンピュータ インターネット
✍キーワード:IE6 JavaScript WSH ウィンドウ クリック
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● regnif
●60ポイント ベストアンサー

you_gotさんが実現したいことがわかりませんが、こういうXSS回避手法もあります。

[ページA]http://regnif.web.fc2.com/test/counterXSS/index.html

[ページB]http://regnif.web.fc2.com/test/counterXSS/xdomain.html

当然、ページAとページBは別ドメインで動きます。

ページBがどのURLになるかはページAに記述targetDomainがありますので、修正してください。

おそらくは[ページA]のメソッドの書き方次第で、JSで可能なことは、ほぼ何でも実現できると思います。

ポイントは[ページA]の実行したいメソッドはアンカー(#以降)の文字列で[ページB]から指定。

[ページB]では#以降を取得して、eval関数で実行。あたりまえですが、[ページA]にどういう名前の

メソッドが存在するかは[ページB]は知っている前提。

また、本来[ページB]ではイベントリスナー形式でURL変更をキャッチしたいのですがイベント名が

わからなかったので、あまりキレイじゃないですがsetIntervalにてURL変更を監視している。


↓説明

ブラウザを立ち上げ、ページAを表示

[ページA]を開きます。

---

ブラウザを別に立ち上げ、ページBを表示

[ページA]の [1]openhoge ボタンをクリックすると

[ページB]

を開きます。

このとき、[ページB]のメソッドhoge()を実行します。

---

ページAでボタンをクリックしたときに、ページBの javascriptのメソッドをコール

[ページA]の [2]openfoo ボタンをクリックすると

[ページB]のメソッドfoo()を実行します。

--------------

「やりたいこと」の2番目の別ブラウザ[ページB]を立ち上げるというのが、[ページA]からという意味でない場合、ご希望の動作はほぼ不可能です。

◎質問者からの返答

なるほど

こうすれば、ページの再読込みもおきませんし、情報を渡すことができますね

ただ、イベントを使えないのはちょっとつらいですね。。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ