我有一个自己托管的网站.我没有静态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重写的黑色艺术.
exampleA.com
<iframe src="http://exampleB.com/">
Run Code Online (Sandbox Code Playgroud)
exampleB.com
<button onclick="top.location='/test'">Test</button>
Run Code Online (Sandbox Code Playgroud)
在Chrome中(我假设大多数浏览器),单击iframe内的"测试"按钮会将父页面更改为exampleB.com/test
,但在IE中它会设置相对于父URL(exampleA.com/test
)的位置.
如何使用相对于iframe的URL在所有浏览器中使用测试按钮?
注意:
这可以在HTML中完成: <a href="/test" target="top">Test</a>
如评论中所述.看到这个问题.
但是,我需要(编辑)基于JavaScript的解决方案,以便更改父位置以响应事件,而不是鼠标单击.