javascript の関数の呼び出し方法について質問です。
A.htmlからwindow.open で開かれたB.htmlがあります。
A.htmlにある test() という関数を呼び出したいい場合、
window.opener.document.test();
となると思いますが、
B.htmlを開いている状態で、A.html上に違うページを開いたとき、
openerの関係が崩れてしまうためか、B.htmlの
window.opener.document.test();
の部分で「書き込み出来ません」というスクリプトエラーが発生してしまいます。
opener を使用しないで関数を呼び出すことはできるでしょうか?
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
何度もスイマセン。
あのあと、検証してみました。
window.opener.location.hrefでopenerのURLの取得も出来ない為、以下のように変更するとA.html内に記述された関数を実行する事が出来ます。
try{
url = window.opener.location.href;
}catch(e){
window.opener.location.href = "http://******/A.html";
}
window.opener.document.test();
No.3
- 回答日時:
失礼、XSS対策ではなくCSRF対策ですね。
iframeなどを使って、違うサイトの操作を乗っ取り、不正入金をさせないようにする為に実装された対策だったと思います。
No.2
- 回答日時:
こんにちは。
記憶違いかもですが、確か別ドメインに遷移した場合、opener内の関数を操作あるいは書き込みするのは今は出来なかったと思います。XSS対策だったと思います。
window.opener.location.hrefでopenerのURLは取得出来ますか?
URLが取得できるのであれば、それを元に処理を挟んではいかがでしょうか?
例えば
if(ドメインが違う時){
window.opener.location.href = "A.html";//元のページに戻す
}
window.opener.document.test();
出来なかったらほんっとすいません。
No.1
- 回答日時:
B.htmlからA.htmlを参照しているのに、
A.htmlがすでにないのであれば、参照のしようがないでしょ??
とりあえずA.html内のスクリプトを外部js化して、
B.htmlでも呼び出すようにしてやれば、関数自体は再利用しやすい
とは思いますが、それはあくまでもA.htmlを参照しているわけでは
ありませんので・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます 1 2022/10/15 16:30
- JavaScript カラーミーショップのsectionループ内で、[引数][戻り値]ありの関数的な処理を行いたいです。 1 2022/05/07 19:39
- 会社・職場 【至急】 自分の旦那が、職場の異性の部下に対して名前呼びしていたら嫌ですか? また、自分の嫁が異性の 5 2023/01/15 09:59
- JavaScript test.jsの関数testから別のtest2.jsの関数testをよびだす方法はどのようにするので 3 2023/03/30 11:11
- Excel(エクセル) Indirect関数について、Formulatextで抽出した数式を参照したい。 1 2022/12/15 11:16
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- Visual Basic(VBA) vba メモリ節約 3 2022/09/16 21:45
- HTML・CSS HTMLタグのあるCSVファイルを利用する方法 4 2023/03/19 14:41
- その他(プログラミング・Web制作) pythonのグローバル変数 2 2022/11/25 18:02
- Excel(エクセル) エクセルの自動更新のタイミングについて 1 2022/07/20 16:12
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
openerの関係が崩れてしまった...
-
ウィンドウのフォーカスについて
-
window.open でExcelファイルを...
-
window.openの使い方
-
window.openの応用!?
-
javascriptからウィンドウを開...
-
特定のウィンドウ名を持つウィ...
-
ポップアップウィンドウの位置
-
<a href="#" …>の意味を教えて...
-
別ファイルのfunctionの読み込み方
-
スマホ上で、左右スワイプで次...
-
【Google Apps Script】「ライ...
-
javascriptファイルは1つに統...
-
bodyにidをつける理由は何ですか?
-
「オブジェクトを指定してくだ...
-
javascriptのalertで文字化けが...
-
JavaScriptでのEnterキーとAlt+...
-
javascriptにてonclickを無効
-
相対パスと絶対パスの速度
-
新しいウィンドゥを最大化で立...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
window.open でExcelファイルを...
-
ウィンドウ名の設定
-
javascriptからウィンドウを開...
-
特定のウィンドウ名を持つウィ...
-
入力したテキストボックスのデ...
-
openerの関係が崩れてしまった...
-
window.openで同画面遷移しない
-
タイトルバーのウインドを閉じ...
-
JavaScript <a>タグで開いた画...
-
jQueryでdivをクリックし別窓で...
-
ウィンドウを最大化したい!
-
ポップアップウィンドウの位置
-
Ajaxでウインドウ出力について
-
ページを表示すると同時に複数...
-
window.open()の複数の使用
-
JavaScriptで開いている別ウィ...
-
サブウィンドウから親ウィンド...
-
親ウィンドウから子ウィンドウ...
-
ポップアップウインドウを開い...
-
<FORM>タグのtargetに値を書込...
おすすめ情報