我在一个主机页面上有 2 个 IFrame,想在主机页面和 IFrame 之间建立双向通道。为此,我使用了 easyXDM 接口类,并且能够设置主机页面和 iFrame 之间的通信。
主机页面在一个域上,所有 IFrame 都在不同的域上,但所有 3 个 IFrame 都在同一个域上。
我已经使用 easyXDM 接口类在主机页面上设置了 2 个通道,并指定了所需的属性,例如本地方法、远程方法等。
主机页面有一个名为发布的本地方法,并且此发布方法在所有 IFrame 上都是远程的。
我遇到的问题是,当从一个 IFrame 调用发布方法时,会为主机页面上的所有 IFrames 通道调用发布。
主机页面上的代码如下所示:
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 端调用发布方法时,通道 1 和通道 2(在主机端)的发布方法都被调用。
有人可以建议这里可能有什么问题。