2011-08-01 6 views
0

document.location.hash = ""はURLに#を設定します。しかし、これをDOMで最初に実行すると、Firefox(少なくともFirefox 5.0.1)では動作しません。何か案は?DOMの最初のものとしてdocument.location.hash = ""を実行してもURLは消去されません

Firefoxと別のブラウザでhttp://www.sebastianrazola.com/test.html#thisshouldberemovedを訪問してみてください。

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8" /> 
    <title>Hash test</title> 
    <script type="text/javascript"> 
    document.location.hash=""; 
    </script> 
</head> 
<body> 
    <p>The hash won't be set to <b>#</b> in Firefox. (At least in Firefox 5.0.1)</p> 
</body> 
</html> 

答えて

0

これはバグです。 https://bugzilla.mozilla.org/show_bug.cgi?id=675587(私があなたが提出したと信じている)

これを回避するには、location.hashが設定される前にdocument.body.offsetWidthをスクリプトに追加します。これにより、存在しない場所にエラーが発生するスクロール可能なレイアウトオブジェクトが作成され、場所がバグ修正なしで変更されなくなります。

+0

ありがとうございました。うん、私はバグを提出した。 – Sebastian

関連する問題