ホスト ページに 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 (ホスト側) のパブリッシュ メソッドの両方が呼び出されます。
誰かがここで何が間違っているのか教えてください。