リンクをアンカーと共有できるようにするには、共有 URL ではなく共有ボタンを使用する必要があります。アンカーを URL エンコードしても、リンクと共有される URL からアンカーが削除されます。ボタンを使用する場合、href 値を指定して、必要な特定のアンカーを含めます。
リンクの共有が必要な場合の別のアプローチ....
アンカーの代替方法をサイトに実装することになります。たとえば、http://mysite.com/?article=myarticleid を使用します。ここで、myarticleid はアンカーと同じであり、ページの読み込み時にそれを確認します (ソース)。
function getParameter(param) {
var val = document.URL;
var url = val.substr(val.indexOf(param))
var n=url.replace(param+"=","");
alert(n);
}
var anchor;
function checkForAnchor(){
anchor = getParameter("myarticle");
// Do something with anchor, see code examples below.
}
window.onload = checkForAnchor;
次に、その checkForAnchor() 関数の最後に JavaScript を追加して、ロード時にページを正しい位置にスクロールするか、アンカーにジャンプします。
jQuery では、( source )のようにその効果をアニメーション化できます。
jQuery('html,body').animate({scrollTop: jQuery('#' + anchor).offset()}, 1000);
標準の JavaScript では、場所を変更してアンカーを追加するだけで済みます。
window.location = '#'+id;