如何更改"父"框架的URL?

ubi*_*con 5 javascript asp.net iis url-rewriting frames

我有一个自己托管的网站.我没有静态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>
Run Code Online (Sandbox Code Playgroud)

当用户在"子"框架内导航时,如何更新"父"框架的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>
Run Code Online (Sandbox Code Playgroud)

和javascript函数......

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

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

http://mydomain.com/test/test.html
Run Code Online (Sandbox Code Playgroud)

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

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

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

The*_*ter 10

JavaScript的:

window.top.location = 'anther url'
Run Code Online (Sandbox Code Playgroud)

- 更新您的更新问题

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>
Run Code Online (Sandbox Code Playgroud)

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


Mar*_*p51 5

很难从您的问题中准确判断哪些框架在做什么,但是如果 Scrum Meister 的解决方案适合您,那么您可以通过将其添加到每个 A 标签来轻松实现您想要的。

 target="_top"
Run Code Online (Sandbox Code Playgroud)

您的示例已修改。

<a href="test/test.html" target="_top">test link</a> 
Run Code Online (Sandbox Code Playgroud)

你也可以用 jquery 做到这一点......在所有 A 标签都应该有 target="_top" 的页面上,你可以在页面上实现以下 jquery 代码,它会动态地将目标添加到所有链接。

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

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

  • `Target = "_top"` 是迄今为止最简单的方法!谢谢! (2认同)