人生最悪の忘れ物

サブフレームから親で定義したJavascriptの関数を実行しようとして以下のようにHTMLを作りました。left.htmlにあるボタンを押下すると、aaa.htmlにある関数loadを実行するようにしましたが、ボタンを押下してもalertが表示されません。load関数を実行できるようにしたいのですが、どのようにしたらよいのか、おわかりになる方、ご教示いただければありがたいです。

《aaa.html(親)》
--------------------------------------------------------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<html lang="ja">
<head>
<title>フレーム</title>
<script>
function load(){
alert('onload');
}
</script>
</head>
<frameset title="サイトのタイトル" cols="100,*">
<frame src="left.html" title="左フレーム" name="left">
<frame src="right.html" title="右フレーム" name="right">
</frameset>
</html>
-------------------------------------------------------------------------------------------------

《left.html(サブフレーム)》
-------------------------------------------------------------------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transiti …
<html lang="ja">
<head>
<title>ひだり</title>
</head>
<body>
<p>ひだり</p>
<button type="button" onclick="window.parent.load();">親</button>
</body>
</html>
------------------------------------------------------------------------------------------------

《right.html(サブフレーム)》
-------------------------------------------------------------------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transiti …
<html lang="ja">
<head>
<title>みぎ</title>
</head>
<body>
<p>みぎ</p>
</body>
</html>
------------------------------------------------------------------------------------------------

よろしくお願いします。

質問者からの補足コメント

  • fujillinさん
    サーバー環境では動作しました。ありがとうございます。
    クロスオリジンについて勉強したいと思います。

    No.1の回答に寄せられた補足コメントです。 補足日時:2024/05/25 21:53

A 回答 (1件)

こんばんは



いまどき frameset でもないとは思いますが・・・
( frameはすでに非推奨です。 )
https://developer.mozilla.org/ja/docs/Web/HTML/E …

対応しているブラウザであれば、ご提示のままで動作すると思いますが、
ひょっとして、ローカル環境で実行していませんか?
その場合はクロスオリジンと解釈されて、実行できないと思われます。
(エラーが発生していると思いますので、内容を確認してみてください)
サーバ環境であれば、実行できると思います。
この回答への補足あり
    • good
    • 4
この回答へのお礼

早速のご回答ありがとうございます。
過去につくられたプログラムのメンテナンスなので、古い書き方になっています。
確かにローカル環境で実行しています。サーバー環境でテストしてみたいと思います。

お礼日時:2024/05/25 21:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A