从重新加载页面停止frame的父级的location.hash

时间:2011-09-23 10:00:19

标签: javascript html

我有一个左右框架的框架集。框架的内容留下了下面的内容。如您所见,我想更新左框架父级(最上面的窗口)位置的哈希/片段标识符。

但是,这会导致在Safari / Chrome中重新加载整个框架集。在Firefox中,整个框架集不会重新加载,但浏览器会连续显示“加载”。

背景:左框显示导航。条目中的单击会在右侧框架中加载另一个HTML页面,并且还应该更新浏览器窗口位置中的哈希值,以便用户可以为页面添加书签。

我该如何做到这一点?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Left</title>
</head>
<body>

<script type="text/javascript" charset="utf-8">
  function go()
  {
    window.document.write('foo');  // replace document with 'foo'
    window.parent.location.hash = '#foo';
  }
</script>

<h1>Left</h1>
<p>
  <a href="#" onclick="javascript:go(); return false;">Go</a>
</p>

</body>
</html>

2 个答案:

答案 0 :(得分:0)

您可能想尝试更改:

onclick="javascript:go(); return false;"

...类似于:

onclick="void(javascript:go(););"

答案 1 :(得分:0)

不要使用window.parent.location.hash而只是尝试这样的事情:

<强> JS:

function go()
{
  window.document.write('foo');  // replace document with 'foo'
}

<强> HTML:

 <a href="#foo" onclick="go()">Go</a>