我有一个自己托管的网站。我没有静态 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 执行此操作,但在为我的 javascript 函数获取正确的 href
时遇到了问题,并且没有产生不利的副作用(打开两个窗口,让我的主窗口出错)位置,或使后退按钮无法正常工作)。我所需要的只是我的 a
标签的一个属性来保存我可以在我的 javascript 中使用的值,但不会做任何其他事情。添加属性 value
事件虽然它不是 a
标记的 native 属性,但效果很好。
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
--更新 #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
关于javascript - 如何更改 "parent"帧的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4361479/