代码之家  ›  专栏  ›  技术社区  ›  Oli

跨域DOM/JS痛苦

  •  1
  • Oli  · 技术社区  · 14 年前

    我有一个我认为很简单的问题。我正在为一个外部学习资源编写一个SCORM包。它基本上是HTML页面中的一个iframe,客户端安装在其LMS(学习管理系统)中。

    外部资源需要能够告诉LMS用户已经完成了内容。因为 LMS和资源在不同的域上 ,显然JS安全墙阻止了我直接通信。因此,当用户到达内容的末尾时,外部资源将其URL设置为具有一个锚,以便URL从 http://url http://url#complete

    现在我试着从iframe上获取位置,结果失败得很惨。我试过了 iframe.location iframe.window.location (窗户也没什么)。我好像没法处理正确的事情。

    iframe.src 显示原始源URL,但当iframe更新到 #complete 版本。

    有什么建议吗?有其他选择吗?虽然我控制了两个页面,但是除非有一个javascript方法来设置跨域通信,否则我不能设置http头来允许它,因为我不控制LMS服务器-它只是将我的静态页面推出。

    编辑: 作为替代方案,我正在考虑将完成的事件存储在资源端的会话中(我猜cookie也可以工作),然后制作另一个页面,将其输出为JSONP语句。我想这很容易做,但对于那些 应该 简单一点。我真的需要从外部站点打开LMS代码的一个开关。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Sean Kinsey    14 年前

    使用 easyXDM ,这应该会让这相当容易。

    使用它,您可以在没有服务器端交互的情况下进行跨域RPC。这个 readme at github 很不错。