[英]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.