jQueryはハイパーリンクイベントをキャプチャしてローカルリフレッシュを行う
1721 ワード
GoogleのUIを使用すると、現在のページにハイパーリンクが開き、ページ全体を置き換えるのではなく、必要に応じてローカルにリフレッシュされます.ユーザーが新しいウィンドウを選択してハイパーリンクを開くと、ハイパーリンクは予想されるページに到達します.
これは私がjQueryで作ったテストにすぎず、Googleがどのように実現したのか分かりません.たとえば、ハイパーリンクイベントをクリックすると、ページはiframeによってローカルにリフレッシュされます.ブラウザのアドレスバーが変化するはずですが、これはどのように変更されますか?
私は今windowを修正しています.locationはアドレスを変更しますが、私は#記号の後ろの内容を変更するしかありません.前の内容も変わった場合、ブラウザがページ全体をリフレッシュする可能性がありますか?
教えてください.
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>A Click Event Test</title>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
$(function(){
/* */
$("#div_test a").click(function(){
var link = $(this).attr('href');
$('#div_view').attr('src', link);
var href = window.location.href;
window.location.href = href.substr(0, href.indexOf('#')) + '#' + link;
return false;
});
});
</script>
</head>
<body>
<div id="div_test">
<ol>
<li><a href="http://xiaoxia.org">xiaoxia</a></li>
<li><a href="http://www.ibaiyang.org">ibaiyang</a></li>
<li><a href="http://www.xiaoxins.com">xiaoxins.com</a></li>
</ol>
</div>
<iframe id="div_view" width="100%"></iframe>
</body>
</html>
これは私がjQueryで作ったテストにすぎず、Googleがどのように実現したのか分かりません.たとえば、ハイパーリンクイベントをクリックすると、ページはiframeによってローカルにリフレッシュされます.ブラウザのアドレスバーが変化するはずですが、これはどのように変更されますか?
私は今windowを修正しています.locationはアドレスを変更しますが、私は#記号の後ろの内容を変更するしかありません.前の内容も変わった場合、ブラウザがページ全体をリフレッシュする可能性がありますか?
教えてください.