Как создать ссылку на часть длинной веб-страницы на другом веб-сайте, который я не контролирую?
Я думал, что вы можете использовать вариант #partofpage в конце моей ссылки. Любые предложения?
Как создать ссылку на часть длинной веб-страницы на другом веб-сайте, который я не контролирую?
Я думал, что вы можете использовать вариант #partofpage в конце моей ссылки. Любые предложения?
Просто добавьте #
, за которым следует 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>
.
Создайте "ссылку перехода" в следующем формате:
http://www.somesite.com/somepage#anchor
Где anchor - это идентификатор элемента, на который вы хотите ссылаться на этой странице. Используйте средства разработки браузера/источник поиска, чтобы найти идентификатор элемента, к которому вы хотите установить ссылку.
Если элемент не имеет идентификатора, и вы не контролируете этот сайт, вы не можете его сделать.
Это возможно только в том случае, если этот сайт объявил якорей на странице. Это делается путем присвоения тегу имени или атрибута id, поэтому ищите любой из тех, где вы хотите сделать ссылку.
И тогда синтаксис будет
<a href="page.html#anchor">text</a>
В случае, если целевая страница находится в том же домене (то есть имеет тот же источник с вашей страницей), и вы не возражаете против создания новых вкладок (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-контента, сдвигающего нижний колонтитул после загрузки.)
Заметки
window.open(url,'_self')
похоже, прерывает событие load
; в основном заставляет window.open
вести себя как обычная навигация по клику a href=""
; еще не исследовал больше. Первая цель относится к 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, мой язык - С#!
Вы можете использовать Citebite для ссылки на определенную позицию веб-страницы, даже если она не использует идентификатор в этой позиции.
Предстоящая функция Chrome "Scroll to text" - это именно то, что вы ищете....
https://github.com/bokand/ScrollToTextFragment
Вы в основном добавляете #targetText=
в конце URL, и браузер прокручивает до целевого текста и выделяет его после загрузки страницы.
Это версия Chrome, которая работает на моем столе, но в настоящее время она должна быть включена вручную. Предположительно, он скоро будет включен по умолчанию в производственных сборках Chrome, и последуют другие браузеры, поэтому хорошо, чтобы начать добавлять ссылки, и тогда они начнут работать.