繁体   English   中英

如何更改“父”框架的URL?

[英]How do I change the URL of the “parent” frame?

我有一个自己托管的网站。 我没有静态IP地址,所以我将我的域的所有流量转发为屏蔽到我的DDNS帐户。 结果页面看起来像这样......

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <title>mydomianname.com</title>
</head>
<frameset rows="100%,*" border="0">
  <frame src="http://myddns.dyndns.org/mydomainname" frameborder="0" />
  <frame frameborder="0" noresize />
</frameset>
</html>

当用户在“子”框架内导航时,如何更新“父”框架的URL?

更新:成功?

我已经尝试用javascript做这个但是有一个问题得到正确的href到我的javascript函数没有不良的副作用(打开两个窗口,让我的主窗口转到错误的位置,或使它如此后退按钮没有干得好。 我需要的只是我a标签的一个属性来保存我可以在我的javascript中使用的值,但根本不会做任何其他事情。 添加属性value事件虽然它不是a标记的本机属性,但效果很好。

a标签...

<a onclick="url_update(this);" value="test/test.html" href="javascript:void(0);">test link</a>

和javascript函数......

function url_update(element){
    base_url = 'http://mydomain.com/';
    window.parent.location.href = base_url + element.getAttribute('value');
}

生成的更新URL是......

http://mydomain.com/test/test.html

......并没有前面提到的副作用。

我想修复的唯一“副作用”是在浏览器窗口底部的信息栏中显示链接。 现在它说javascript:void(0); 因为这是我的href属性中所写的内容,但我希望它在链接悬停时显示更新的URL ...任何想法?

如果我可以废弃所有这些javascript并使用IIS 7 URL Rewrite 2.0代替这样做会更好......但我还没有掌握URL重写的黑色艺术。

JavaScript的:

window.top.location = 'anther url'

- 更新您的更新问题

使用element.getAttribute('value')而不是element.value

--UPDATE#2使用href属性,但是,添加一个return false; 到onclick函数:

<a onclick="url_update(this);return false;" value="test/test.html" href="test/test.html">test link</a>

一旦你这样做,你可能会跳过value属性并只使用href属性,更新url_update函数以使用element.href而不是element.value

很难从你的问题中确切地知道哪些框架正在做什么,但如果Scrum Meister的解决方案适合你,那么你可以通过将它添加到每个A标签来轻松实现你想要的。

 target="_top"

您的示例已修改。

<a href="test/test.html" target="_top">test link</a> 

您也可以使用jquery执行此操作...在所有A标记应具有target =“_ top”的页面上,您可以在页面上实现以下jquery代码,它将动态地将目标添加到所有链接。

<script language="javascript" type="text/javascript">
$(function()
{
     $("A").attr("target","_top");
});
</script>

假设你有一个带有href属性的normail A标签,你可以一起摆脱onclick,目标解决方案不需要其他javascript。

首先,您需要在同一个域上...否则出于安全考虑,您无法更改它。 在子框架中声明并调用此函数

function change(theUrl){

window.parent.reloadContent(theUrl);
}

在您的父母中有以下功能:

function reloadContent(theUrl){
  if (theUrl != ""){ 
      document.getElementById("frameID").src= theUrl ; 
  } 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM