【问题标题】:How do I change wrapper when iframe url changesiframe url更改时如何更改包装器
【发布时间】:2013-09-05 02:17:33
【问题描述】:

我有一个带有 iframe 的页面。我的页面有一个显示在页面上的横幅/标题。用户点击 iframe 表单中的提交后。我希望横幅消失。

http://todayshousingmarketvalues.com/

这是页面。如果您输入地址并单击提交,您会看到我需要什么。编个地址。你不需要使用你自己的。如果您不订阅,什么都不会发生。

【问题讨论】:

  • 你不能,至少不能没有调整/直接,因为 iframe 与引用域不在同一个来源,因此,它受同源策略的约束。
  • 我可以测试 'url' 或 'src' 并在 'url != original src' 的情况下运行一些代码吗?
  • @user2730633 iframe SRC 在文档更改时不会更改
  • @user2730633 是同一域的 iframe 和主页吗?
  • 不,它们不在同一个域中。 src1 = roseporter.smarthomeprice.com

标签: javascript jquery html iframe


【解决方案1】:

您可以处理 iframe 的 onload 事件。如果 iframe 和父页面都在同一个域上 - 您可以检查 iframe 的 contentWindow.location.href 值,如果它发生变化 - 这意味着用户执行了操作 - 隐藏横幅。

如果域不同相同 - 这种方法将不起作用,因为对该属性的访问将被拒绝。在这种情况下,您可以在父级上设置一个标志,标记 iframe 的初始加载。并在连续加载时更改标志,例如在 iframe onload 中调用类似的东西:

    var initialLoad = true;

    function checkURL() {
       if (initialLoad) {
           initialLoad = false;
        } else {
          document.getElementById("banner").style.display="none";
        }
     }

演示:http://jsfiddle.net/MMa9w/ 查看横幅,然后输入任何内容并单击按钮

【讨论】:

  • 谢谢,但他们不在同一个域中。
  • 这段代码在做什么,演示正在显示。 not 在同一个域上的用例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-22
  • 1970-01-01
  • 2012-06-27
  • 2012-03-11
  • 1970-01-01
  • 2016-05-14
  • 1970-01-01
相关资源
最近更新 更多