【问题标题】:Javascript communication between two web applications on different domains不同域上的两个 Web 应用程序之间的 Javascript 通信
【发布时间】:2013-10-09 10:56:36
【问题描述】:

我有一个 Web 应用程序,当客户单击 Drupal Web 内容页面上的链接时,它会在一个新的弹出窗口中启动。

当用户到达 Web 应用程序工作流程中的某个页面时,我想向(仍然打开的)Drupal 页面发送一条消息,并向其传递一些信息(例如我在工作流程中的哪个位置)。

当 Drupal 网站收到此“消息”时,它会在其端调用一些 javascript 来更新当前显示的页面内容。

所以基本上,一种在一个域上执行 Javascript 的方法,从另一个域中的 Javascript 函数。

我可以控制 Drupal 站点和 Web 应用程序,因此任何需要在任一端部署的 javascript 都不是问题。 但请注意,这两个站点位于不同的域中,因此我需要实现一些可以跨域工作的东西

我不知道如何实现这个,到目前为止我已经考虑过 JSON-P。

【问题讨论】:

    标签: javascript drupal cross-domain jsonp


    【解决方案1】:

    您的两个网络应用程序都在客户端运行,因此您无需向服务器询问如何与您已经打开的窗口联系。

    因此,为了节省时间和精力,请在客户端的窗口之间进行直接通信。

    要将消息发送到另一个html页面,您需要首先将打开的窗口保存在一个变量中,如下所示:

    // This code is inside the html file that open 
    // the drupal site.
    var windowOpened = window.open("drupalUrl.html");
    

    但是,在 drupalUrl.html 你需要创建一个全局函数,所以你可以这样调用:

    windowOpened.globalFunction(param1, param2);
    

    正如我所说,在 drupalUrl.html 中你需要创建一个函数:

    function globalFunction(param1, param2){
        //show your message
    }
    

    【讨论】:

    • 如果我的回答有帮助,请告诉我。
    • 我通常使用window.postMessage而不是“全局函数”在不同域的页面之间发送消息。
    猜你喜欢
    • 2011-08-06
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 2016-02-27
    • 2010-11-28
    • 2016-07-27
    • 2011-06-06
    相关资源
    最近更新 更多