1

ホスト ページに 2 つの IFrame があり、ホスト ページと IFrame の間に双方向チャネルを設定したいと考えていました。そのために、easyXDM インターフェイス クラスを使用し、ホスト ページと iFrame 間の通信をセットアップすることができました。

ホスト ページは 1 つのドメインにあり、すべての IFrame は別のドメインにありますが、3 つの IFrame はすべて同じドメインにあります。

easyXDM インターフェイス クラスを使用してホスト ページに 2 つのチャネルを設定し、ローカル メソッド、リモート メソッドなどの必要なプロパティを指定しました。

ホスト ページには publish というローカル メソッドがあり、この publish メソッドはすべての IFrame でリモートです。

私が得ている問題は、publish メソッドが 1 つの IFrame から呼び出されると、ホスト ページのすべての IFrames チャネルに対して publish が呼び出されることです。

ホスト ページのコードは次のようになります。

channel1 = new easyXDM.Interface(
    {
        local: "/name.html",
        remote: "PathToIFrame1.html",
        container: document.getElelmentById('Div1')
    }
    , {
        remote: {
            receive: {}
        },
        local: {
            publish: { method: function () { } }
        }
    }
    );

channel2 = new easyXDM.Interface(
    {
        local: "/name.html",
        remote: "PathToIFrame2.html",
        container: document.getElelmentById('Div2')
    }
    , {
        remote: {
            receive: {}
        },
        local: {
            publish: { method: function () { } }
        }
    }
    );

IFrame 側のコードは次のようになります。

remote = new easyXDM.Interface({}, 
            {
            remote: {
                publish: {
                    isVoid: true
                }
            },
    local: {
        Receive: {
            isVoid: true,
            method: function (a, b) {                  

            }
        }            
    }

   });

}

パブリッシュ メソッドが IFrame 側から呼び出されると、channel1 と channel2 (ホスト側) のパブリッシュ メソッドの両方が呼び出されます。

誰かがここで何が間違っているのか教えてください。

4

0 に答える 0