Webページの特定の部分へのリンク


93

自分が管理していない別のウェブサイトの長いウェブページの一部へのリンクを作成するにはどうすればよいですか?

リンクの最後にある#partofpageのバリエーションを使用できると思いました。助言がありますか?



回答のこの部分をリンクするには、次のリンクを使用してください、stackoverflow.com
questions / 15481911 /…

ページのこの部分をリンクするには、次のリンクを使用してください、stackoverflow.com
questions / 15481911 /…

回答:


82

取得しようとして#いる<a>タグ(またはのような他のHTMLタグ<section>)のIDを後に追加するだけです。たとえば、このHTMLのヘッダーにリンクしようとしている場合:

<p>This is some content.</p>
<h2><a id="target">Some Header</a></h2>
<p>This is some more content.</p>

リンクを使用できます<a href="http://url.to.site/index.html#target">Link</a>


2
そのIDが複数回使用された場合はどうなりますか?私が使用MSのサイトに走ったidid="in-closing">Some string</id>複数回のSome string数回を新しい文字列になりましたが。
kayleeFrye_onDeck 2018年

5
@kayleeFrye_onDeckが複数ある場合、HTMLは無効ですid。定義上id、そのタグに固有であることを意味します
コロブキャニオン

1
明確にしてくれてありがとう、@ KolobCanyon!:)
kayleeFrye_onDeck

一度だけ使用されるクラスでこれを行う方法はありますか?
ChagaiFriedlander19年

たぶん私はナイーブだったのかもしれませんが、偶然www.site.com/page/#targetに失敗したのです。/URLの末尾にがないことを確認してください。
ノア

29

次の形式を使用して「ジャンプリンク」を作成します。

http://www.somesite.com/somepage#anchor

ここで、anchorは、そのページでリンクする要素のIDです。ブラウザ開発ツール/ソースの表示を使用して、リンクする要素のIDを見つけます。

要素にIDがなく、そのサイトを制御しない場合は、それを行うことはできません。


Webページの特定の部分にIDが関連付けられていない場合はどうなりますか?
ajaysinghnegi 2018

次に、要素にIDを追加する必要があります
カウル2018

1
インターネット上のWebページのタグにIDを追加できますか?
ajaysinghnegi 2018

2
いいえ、別のWebサイトでこれを実行する場合は、カスタムJSブックマークレットを作成して、スクロール先の部分までスクロールしてみてください。IDが設定されていない場合、アンカーリンクを機能させることはできません。
カウル2018

そのために上記で指定したものにリンクできますか?私はこれまでそのようなことをしたことがありません。
ajaysinghnegi 2018

10

これは、そのサイトがページでアンカーを宣言している場合にのみ可能です。タグに名前またはid属性を付けることで実行されるため、リンク先に近いものを探します。

そして、構文は次のようになります

<a href="page.html#anchor">text</a>

このname属性は<a>この要素でのみサポートされており、HTML 5では廃止されています
Quentin

それは私にとって要素にあまりにも低く焦点を合わせています。誰かが同じことが起こったことがありますか?
コロブキャニオン

8

ターゲットページが同じドメインにあり(つまり、ページと同じオリジンを共有している)、新しいタブの作成を気にしない場合(1)、JavaScriptを(乱用)使用できます

<a href="javascript:void(window.open('./target.html').onload=function(){this.document.querySelector('p:nth-child(10)').scrollIntoView()})">see tenth paragraph on another page</a>

トリビア:

var w = window.open('some URL of the same origin');
w.onload = function(){
  // do whatever you want with `this.document`, like
  this.document.querySelecotor('footer').scrollIntoView()
}

今すぐ試すことができるこのような「エクスプロイト」の実例は次のとおりです。

javascript:(function(url,sel,w,el){w=window.open(url);w.addEventListener('load',function(){w.setTimeout(function(){el=w.document.querySelector(sel);el.scrollIntoView();el.style.backgroundColor='red'},1000)})})('/programming/45014240/link-to-a-specific-spot-on-a-page-i-cant-edit','footer')

これをロケーションバーに入力するか(Chromejavascript:がクリップボードから貼り付けるとプレフィックスを削除するhrefことに注意してください)、または(開発ツールを使用して)このページの任意のリンクの値にしてクリックすると、別の(重複した)SO質問ページがスクロールされますフッターとフッターは赤く塗られています。(ロード後にフッターを押し下げるajaxロードされたコンテンツの回避策として遅延が追加されました。)

ノート

  • 現在のChromeとFirefoxでテストされていますが、定義された標準の動作に基づいているため、通常は機能するはずです。
  • SOのインタラクティブスニペットでは、ページの原点から分離されているため、説明できません。
  • MDN:Window.open()
  • (1)イベントをwindow.open(url,'_self')中断しているようloadです。基本的にwindow.open、通常のa href=""クリックナビゲーションのように動作します。まだこれ以上研究していません。

ことは、一番下までスクロールしませんでしたし、一番下は赤ではありません
ジョン・D

1
…そしてどちらも新しいウィンドウを開かなかったと思います。おそらく事実として、javascript:URLbarに入力されたリンクの実行は、「自己XSS」防止として、デフォルト設定ではほとんどのブラウザで機能しなくなりました。ただし、Web Developersコンソールで試すことができ、うまく機能するはずです。
MYF

誰かがこれを編集して使いやすくしてくれませんか?私はJavaScriptの専門家ではなく、何をすべきか理解できませんでした
Chagai Friedlander

3

最初のオフターゲットとは、リンクしようとしているHTMLコードまたはchromes開発ツールのいずれかにあるBlockIDを指します。コードはそれぞれ異なり、参照しようとしているIDを見つけるために掘り下げる必要があります。これはdiv class="page-container drawer-page-content" id"PageContainer"、個々のテキストや画像ではなく、参照されるセクション全体の形式であることに注意してください。これを行うには、同じコードを見つける必要がありますが、ターゲットブロックに関連しています。たとえば、dv id="your-block-id"とにかく私はこのスレッドを読んでいて、アイデアが思い浮かびました。あなたがShopifyユーザーであり、これを実行したい場合、それは述べられていることとほとんど同じです。しかし、代わりに

> http://url.to.site/index.html#target

あなたが置くだろう

> http://storedomain.com/target

たとえば、ホームページにニュースレターの登録とショッピングブロックにつながるリンクを含む免責事項ページを設定しているのでhttps://mystore-classifier.com/#shopify-section-1528945200235、ハイパーリンクを挿入します。-classifierは私の内部使用のためのものであり、あなたには適用されないことに注意してください。これは、店舗を追跡できるようにするためです。あなたがあなたのホームページ以外のものにリンクしたいなら、あなたは置くでしょう

> http://mystore-classifier.com/pagename/#BlockID

誰かがこれがお役に立てば幸いです。私の説明に何か問題がある場合は、私はHTMLプログラマーではないので、私の言語はC#です。


3

今後のChromeの「テキストにスクロール」機能はまさにあなたが探しているものです。

https://github.com/bokand/ScrollToTextFragment

基本的に#targetText=URLの最後に追加すると、ブラウザはターゲットテキストまでスクロールし、ページが読み込まれた後にそれを強調表示します。

デスクで実行されているバージョンのChromeにありますが、現在は手動で有効にする必要があります。おそらく、本番環境のChromeビルドですぐにデフォルトで有効になり、他のブラウザもそれに続くので、今すぐリンクへの追加を開始して、それから機能し始めます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.