Javascript 如何与运行在Flex应用程序中的iFrame中托管的html文件通信?
问题:需要将已发生事件的通知从iFrame中托管的external pivot.html发送到Flex应用程序以进行事件处理 我在main.html中托管了一个Flex应用程序。我还有pivot.html,它显示在Flex应用程序内部的iFrame中。由于安全域的原因,我只能从main.html向Flex应用程序发送回调。问题是我需要处理Flex应用程序中pivot.html内组件上接收到的事件。所以我需要从pivot.html调用main.html,main.html将依次调用Flex应用程序中的函数 但是,如果我不能从pivot.html调用main.html中的函数,我该怎么做呢 在pic中需要做什么:Javascript 如何与运行在Flex应用程序中的iFrame中托管的html文件通信?,javascript,html,apache-flex,Javascript,Html,Apache Flex,问题:需要将已发生事件的通知从iFrame中托管的external pivot.html发送到Flex应用程序以进行事件处理 我在main.html中托管了一个Flex应用程序。我还有pivot.html,它显示在Flex应用程序内部的iFrame中。由于安全域的原因,我只能从main.html向Flex应用程序发送回调。问题是我需要处理Flex应用程序中pivot.html内组件上接收到的事件。所以我需要从pivot.html调用main.html,main.html将依次调用Flex应用程序
谢谢我想你可以使用postmessage通信。试着回答我自己的问题(最终解决了这个问题,希望它能帮助别人):
...
ExternalInterface.call(Injecter.getIFrameWindow);
ExternalInterface.call("setObjectID", IFrame.applicationId, iFrame.getIFrameId());
ExternalInterface.addCallback("currentPageChange", currentPageChange);
...
function SomeEventHandler()
{
var evt = document.createEvent("CustomEvent");
evt.initCustomEvent("pagechange", true, true, "some_data_to_be_passed_here");
window.dispatchEvent(evt);
}
使用ExternalInterface.call是一种方法。
function SomeEventHandler()
{
var evt = document.createEvent("CustomEvent");
evt.initCustomEvent("pagechange", true, true, "some_data_to_be_passed_here");
window.dispatchEvent(evt);
}