2

因此,我的一个客户与一家票务公司签约,该公司说服他们采用一种解决方案,该解决方案基本上通过 iframe 将他们的系统嵌入到我客户的网站上。玉。

这意味着在我客户的事件页面上,他们将在 iframe 中浏览事件,并且父级的 url 永远不会改变。

我只是想知道我是否可以做些什么来使这个特定问题不再是一个问题。例如,在 iframe 中加载的每个页面上,向父级的 url 发送一些内容,以标识 iframe 的哪个页面当前打开?这样,如果有人共享 url,或通过浏览器刷新,他们就不会留在 iframe 的起始页面。

我可能可以将自己的 javascript 文件添加到 iframe,但不确定我还能操作多少 iframe。

任何建议都会很棒。

谢谢!

4

1 回答 1

1

您可以侦听 iframe 的 onLoad-event 并获取内部页面的当前 URL。

var iframe = document.getElementById("myframe"); // That's our iframe
iframe.addEventListener("load", function() {
  var currentURL = iframe.contentDocument.URL; // The current URL of the page inside the iframe
});

然后,您可以使用此 URL 执行您需要的操作。您还可以在浏览器 URL 栏中使用 更改 URL window.history

// Inside the onLoad-event of the iframe
window.history.pushState({}, "", "?framepage=" + currentURL.split("/").pop());

这将在用户每次更改 iframe 内的位置时更改 URL,或者更准确地说,它添加了一个 URL 参数。假设用户导航到http://example.com/somepage/whatever.html。浏览器中的 URL 将具有 URL 参数?framepage=whatever.html。您现在可以使页面在第一次加载时加载此 URL 参数中提供的页面,以便人们可以共享这些链接,并且 iframe 最初具有正确的 src。

您存储什么以及如何存储和对它做出反应取决于您自己。我不知道您的页面和框架内的页面是如何工作的。最后的步骤只是提供一种可能性的示例。我希望你能以此为基础。

于 2013-10-07T09:40:20.247 回答