【问题标题】:How to get information from an iframe which uses flash image slider using javascript?如何从使用 javascript 的 Flash 图像滑块的 iframe 获取信息?
【发布时间】:2012-12-09 11:17:49
【问题描述】:

我正在开发一个 Wordpress 主题。在一个页面中,我必须使用iframe 从另一个网站获取内容。该页面是一个图像滑块,它使用闪存。我对闪光灯一无所知。它使用类似AC_FL_RunContent的东西。

我需要获取图像信息以根据图像显示一些文本。我的意思是不同图像的不同文本。有什么办法,我可以从这个iframe中提取图片名称之类的信息吗?

我也可以完全访问 Flash 文件。但它们在不同的域上。 提前致谢。

【问题讨论】:

    标签: javascript flash iframe


    【解决方案1】:

    您无法访问指向另一个站点的 IFRAME 的内容。 SOP 将阻止这种情况。这将是一个安全威胁。

    干杯。

    【讨论】:

    • 有了这个我可以访问一个DOM,但我可以在flash的情况下使用它吗?我至少需要获取图像名称。该 iframe 中没有
      或任何 HTML 标记。这种情况该怎么办?
    • 我从来没有用过 flash,抱歉我帮不了你:(
    • 谢谢。你给了我一些很好的信息。干杯。
    【解决方案2】:

    如果您有权访问 Flash 的源文件,则可以通过使用 LocalConnection 到模板中运行后续 JS 调用的小型、不可见的代理 Flash 文件来绕过 iFrame 的沙箱。它需要您对原始图片库进行更改并重新编译。

    模型如下:

    1. 图片库 Flash 通过 LocalConnection 将文件名作为消息发送。
    2. 代理 flash 收到消息,使用 ExternalInterface 调用页面上的 JS 函数。
    3. 页面上的 JS 函数接收来自代理 flash 的函数调用并执行相关操作。

    Adobe LiveDocs on using LocalConnection

    Adobe LiveDocs on using ExternalInterface

    我承认这并不漂亮,但如果图片库是闪光灯,这是我能想到的唯一解决方案。

    【讨论】:

    • iframe 仍然有自己的不可穿透的沙箱,即使其中的内容与托管它的页面位于同一个域中。您仍然需要它们之间的某种代理。尽管 Flash 不是理想的解决方案,但它会起作用,尤其是因为它是您已经拥有的。只要请求的接收者托管允许从请求域访问的跨域策略文件,Flash 甚至会允许跨域通信。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签