私がやろうとしているのは、ユーザーを href リンクを介して php スクリプトに渡し、ページが更新されていないように、リンクをクリックする前とまったく同じ位置に戻すことです。これが可能かどうか、またはどのように可能かを誰かが知っていますか? ありがとうございました。
質問する
16884 次
5 に答える
9
HTMLを使用すると、次のことができます
<p id='open_here'><a href='script.php'> Send to script </a> </p>
そして、その正確な位置にリンクすることができます
<a href="mypage.html#open_here">Send Back to page</a>
基本的に、前のコード スニペットのように通常のリンクを使用する代わりに、次のコードを使用してページにリダイレクトできます。
//php redirect
<?php header('Location: mypage.html#open_here'); ?>
//Javascript redirect
<script type='text/javascript'>
window.location = "mypage.html#open_here";
</script>
于 2013-07-09T19:03:49.263 に答える
2
機能させるために Javascript を追加してもかまわない場合は、ユーザーがリンクをクリックしたときとまったく同じスクロールバーの位置にリダイレクトできるようにするソリューションを次に示します。
index.php
(リンク先のファイル)
<script>
window.addEventListener('load', function() {
// Do we have a #scroll in the URL hash?
if(window.location.hash && /#scroll/.test(window.location.hash)) {
// Scroll to the #scroll value
window.scrollTo(0, window.location.hash.replace('#scroll=', ''));
}
// Get all <a> elements with data-remember-position attribute
var links = document.querySelectorAll('a[data-remember-position]');
if(links.length) {
// Loop through the found links
for(var i = 0; i < links.length; i++) {
// Listen for clicks
links[i].addEventListener('click', function(e) {
// Prevent normal redirection
e.preventDefault();
// Redirect manually but put the current scroll value at the end
window.location = this.href + '?scroll=' + window.scrollY;
});
}
}
});
</script>
page.php
(リダイレクトする PHP スクリプト)
<?php
// Get the provided scroll position if it exists, otherwise put 0
$scrollPos = (array_key_exists('scroll', $_GET)) ? $_GET['scroll'] : 0;
// Redirect back to index.php and provide the scroll position as a hash value
header('Location: index.php#scroll='.$scrollPos);
それが役に立てば幸い!:)
于 2013-07-09T19:58:09.740 に答える