0

1 つのブラウザー ウィンドウ内に 3 つの Web サイトを表示し、複数のウィンドウを表示することなくそれらとやり取りしたいというクライアント向けのソリューションに取り組んでいます。当初は iframe が機能すると思っていましたが、使用しているソフトウェアが何らかの理由でその機能を無効にしているため、いくつかの調査を行った後、オブジェクトが同様の機能を実行する可能性があることがわかりました。

私が抱えている問題の 1 つは、別のオブジェクトのアクションに基づいてサブ ウィンドウの内容を変更できるようにしたいということです。たとえば、オブジェクト 2 にリンクをロードするためのリンクがオブジェクト 3 にある場合、可能です。しかし、私はそれらが互いに通信することにあまり運がありません。可能であれば、これを達成できる方法を知っている人はいますか?

このアクションを実行するために使用している現在のコード。

<html>
<head>
    <title>AAA</title>
    <script language="JavaScript">
        function doPage(targetObjectPane) {
            var objTag = document.getElementById(targetObjectPane);
            if (objTag != null) {
                objTag.setAttribute('data', 'http://www.toronto.ca/');
                alert('Page should have been changed');
            }
        }
    </script>
</head>
<body>
<div style="width:100%;height:100%;">
    <div style="float:left;width:65%;height:100%;">
        <object name="frameone" id="frameone" data="http://www.tsn.ca/" standby="loading data" title="loading" width="100%" height="100%" type="text/html">
            Alternative Content
        </object>
    </div>
    <div style="float:right;width:35%;height:100%;">
        <object name="frametwo" id="frametwo" data="http://www.cbc.ca/" standby="loading data" title="loading" width="100%" height="50%" type="text/html">
            Alternative Content
        </object>
        <object name="framethree" id="framethree" data="test.html" standby="loading data" title="loading" width="100%" height="50%" type="text/html">
            Alternative Content
        </object>
    </div>
</div>
</body>
</html>

そしてオブジェクト frameThree 内で、

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
</head>
<body>
<a href="#" onclick="doPage(frametwo);">Test</a>
</body>
</html>

一言で言えば、オブジェクト コンテンツを操作しようとする JavaScript の試みで未定義のエラーが発生しました。別のサイトであると想定しているため、同じブラウザ ウィンドウの子としてお互いを認識することはできません。doPage の現在の実行は、関数が未定義であることを示しています。その関数コードを test.html に移動すると、参照されたオブジェクト名 frameTwo が見つかりません。

4

1 に答える 1