在地址栏中显示iFrame网址

时间:2014-05-09 08:17:30

标签: javascript html url iframe address-bar

是否可以在网址栏中包含iframe内容的网址?

例如,我有一个域sub.test.com,其中有一个iframe,其中src为realpage.com

浏览网页逻辑上并没有改变地址栏中的任何内容,因为我们在其他域上的iframe中打开了真实页面。

我知道无法将整个网址注入地址栏,但如果没有主机名呢?

例如,如果我在realpage.com/first.php中打开网站iframe,我希望地址栏中的网址更改为sub.test.com/first.phpsub.test.com/first

2 个答案:

答案 0 :(得分:3)

您有两个选项可以使用pushStatemore info),也可以使用哈希键导航(more info),如果您希望使其与不支持的浏览器兼容但pushState可用。

pushState示例:

var stateObj = { foo: "bar" };
history.pushState(stateObj, "page 2", "bar.html");

哈希键示例:

if ("onhashchange" in window) {  
  alert("The browser supports the hashchange event!");  
}  

function locationHashChanged() {  
  if (location.hash === "#somecoolfeature") {  
    somecoolfeature();  
  }  
}  

window.onhashchange = locationHashChanged;

有关详情,请点击此处链接:Change the URL in the browser without loading the new page using JavaScript

答案 1 :(得分:1)

顶级框架可以使用the history api更改地址(尽管不是原始部分),特别是pushState

要对框架中的导航做出反应,因为它是跨越原点的,您需要使用postMessage发送要更改的网址。