使iFrame更易于使用

时间:2013-10-07 08:57:19

标签: javascript jquery iframe http-headers

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

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

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

我可能会将自己的javascript文件添加到iframe中,不知道我还能操作iframe的其他内容。

任何建议都很棒。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以收听iframe的onLoad事件,并获取该页面的当前网址。

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执行所需操作。您还可以使用window.history更改浏览器网址栏中的网址。

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

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

您存储的内容以及存储和响应方式取决于您。我不知道你的页面和框架内的页面是如何工作的。最后的步骤只是提供一种可能性的一个例子。我希望你能以此为基础。

相关问题