Подтвердить что ты не робот

Связывание с определенной частью веб-страницы

Как создать ссылку на часть длинной веб-страницы на другом веб-сайте, который я не контролирую?

Я думал, что вы можете использовать вариант #partofpage в конце моей ссылки. Любые предложения?

4b9b3361

Ответ 1

Просто добавьте #, за которым следует ID тега <a> (или другой тег HTML, например <section>), к которому вы пытаетесь добраться. Например, если вы пытаетесь ссылаться на заголовок в этом 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

Создайте "ссылку перехода" в следующем формате:

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

Где anchor - это идентификатор элемента, на который вы хотите ссылаться на этой странице. Используйте средства разработки браузера/источник поиска, чтобы найти идентификатор элемента, к которому вы хотите установить ссылку.

Если элемент не имеет идентификатора, и вы не контролируете этот сайт, вы не можете его сделать.

Ответ 3

Это возможно только в том случае, если этот сайт объявил якорей на странице. Это делается путем присвоения тегу имени или атрибута id, поэтому ищите любой из тех, где вы хотите сделать ссылку.

И тогда синтаксис будет

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

Ответ 4

В случае, если целевая страница находится в том же домене (то есть имеет тот же источник с вашей страницей), и вы не возражаете против создания новых вкладок (1), вы можете (ab) использовать некоторый 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)})})('https://stackoverflow.com/questions/45014240/link-to-a-specific-spot-on-a-page-i-cant-edit','footer')

Если вы введете это в адресную строку (учтите, что Chrome удаляет префикс javascript: при вставке из буфера обмена) или href значение href для любой ссылки на этой странице (с помощью инструментов разработчика) и щелкните по ней, вы получите еще один (дубликат) SO вопрос Страница прокручивается в нижний колонтитул, а нижний колонтитул окрашивается в красный цвет. (Задержка добавлена в качестве обходного пути для загруженного ajax-контента, сдвигающего нижний колонтитул после загрузки.)

Заметки

  • Протестировано в текущих Chrome и Firefox, как правило, должно работать, поскольку оно основано на определенном стандартном поведении.
  • Не может быть проиллюстрировано в интерактивном фрагменте здесь, в SO, потому что они изолированы от исходной страницы.
  • MDN: Window.open()
  • (1) window.open(url,'_self') похоже, прерывает событие load; в основном заставляет window.open вести себя как обычная навигация по клику a href=""; еще не исследовал больше.

Ответ 5

Первая цель относится к BlockID, найденному либо в HTML-коде, либо в инструментах разработчика chromes, на которые вы пытаетесь сослаться. Каждый код отличается, и вам нужно будет покопаться, чтобы найти идентификатор, на который вы пытаетесь сослаться. Он должен выглядеть примерно так: 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 на новостную рассылку и блоками покупок на моей домашней странице, поэтому я вставляю https://mystore-classifier.com/#shopify-section-1528945200235 для моей гиперссылки. Обратите внимание, что -classifier предназначен для моего внутреннего использования и не относится к вам. Это просто, чтобы я мог отслеживать свои магазины. Если вы хотите дать ссылку на что-то кроме вашей домашней страницы, вы бы поставили

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

Я надеюсь, что кто-то нашел это полезным, если с моим объяснением что-то не так, пожалуйста, дайте мне знать, поскольку я не программист HTML, мой язык - С#!

Ответ 6

Вы можете использовать Citebite для ссылки на определенную позицию веб-страницы, даже если она не использует идентификатор в этой позиции.

Ответ 7

Предстоящая функция Chrome "Scroll to text" - это именно то, что вы ищете....

https://github.com/bokand/ScrollToTextFragment

Вы в основном добавляете #targetText= в конце URL, и браузер прокручивает до целевого текста и выделяет его после загрузки страницы.

Это версия Chrome, которая работает на моем столе, но в настоящее время она должна быть включена вручную. Предположительно, он скоро будет включен по умолчанию в производственных сборках Chrome, и последуют другие браузеры, поэтому хорошо, чтобы начать добавлять ссылки, и тогда они начнут работать.