【问题标题】:Passing JS variable from child Iframe to parent JSP on cross sub domain在跨子域上将 JS 变量从子 Iframe 传递给父 JSP
【发布时间】:2012-08-29 21:11:29
【问题描述】:

我被困在 1 个位置,需要一些帮助。我在 apache tomcat 服务器上创建了两个子域,例如 server.xml 中的 domain1.localhost.com 和 domain2.localhost.com。在 domain1 上,我有一个包含 iFrame(托管在 domain2 上)的 JSP。我们如何将 JS 变量从子 Iframe 传递到父 JSP 并将其存储在托管在 domain1.localhost.com 上的 JSP 的本地变量中?

我尝试在两个 JSP 上定义 document.domain = "localhost" 但没有成功。由于明显的跨域策略,即使父 DOM 窗口在子 iFrame(子域上)中也不可用。

任何帮助将不胜感激。

【问题讨论】:

    标签: javascript localhost parent-child


    【解决方案1】:

    您使用的确切域名结构是什么? 如果您使用 mydomain.localhost,则无法使用 .localhost 作为域名的共享部分,因为它是一级域。 如果您使用的是 mydomain.localhost.com ,那么共享部分(document.domain)应该是 "localhost.com" ,而不仅仅是您在问题中提到的 "localhost" 。 document.domain 应该可以正常工作,但即使您有两个不同的域,例如 company1.com 和 company2.com,仍然可以在 EasyXDM 的帮助下将值从 iframe 传递给父级。

    【讨论】:

    • 但我还有 1 个问题。我必须在父 JS 变量中分配子 Iframe JS 变量的值。你能帮忙吗?
    • 哦,对不起,我错过了你的第二个问题。所以迟到总比没有好,对吧? > 我必须在父 JS 变量中分配子 Iframe JS 变量的值。如果他们有共享 document.domain ,那么很容易parent.window.someVariableOfParent = someVariableOfIframeChild;
    【解决方案2】:

    对不起,我认为这是不可能的。但也许你可以解释你想要达到的目标,也许我们可以想出一些替代方案:-)

    【讨论】:

    • 在子 Iframe 中,我几乎没有存在omniture 标签。我想将所有这些标签传递给父 JSP(位于另一个域上)。因此,在子 Iframe 中,我创建了一个 javascript 函数,该函数采用所有omniture 标记并创建一种哈希映射或键值对类型的结构,并将所有内容存储在一个变量中。现在我需要将该变量传递给父 JSP 的局部变量,以便我可以在父级别使用全功能标签。
    • top 是您引用以到达外框的变量。它是外框的窗口。所以 top.document.body 是外框的主体。您可以使用 top.myfunction(sendLocalVariables); 调用全局函数;如果跨源的东西有效,我想这是拼图的最后一块:-)
    猜你喜欢
    • 2014-07-04
    • 2013-03-01
    • 2013-07-08
    • 2014-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    相关资源
    最近更新 更多