Як створити посилання на частину довгої веб-сторінки на іншому веб-сайті, який я не контролюю?
Я думав, що ви можете використовувати варіант #partofpage в кінці мого посилання. Будь-які пропозиції?
Як створити посилання на частину довгої веб-сторінки на іншому веб-сайті, який я не контролюю?
Я думав, що ви можете використовувати варіант #partofpage в кінці мого посилання. Будь-які пропозиції?
Відповіді:
Просто додайте #
ідентифікатор <a>
тегу (або іншого тегу HTML, наприклад a <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>
.
id
в id="in-closing">Some string</id>
кілька разів , коли Some string
стали нового рядка кілька разів.
id
. За визначенням id
має бути унікальним для цього тегу
www.site.com/page/#target
це зробив, це не вдалося. Переконайтеся, що у вас немає /
кінця URL-адреси.
Створіть "посилання на перехід", використовуючи такий формат:
http://www.somesite.com/somepage#anchor
Де прив'язка - це ідентифікатор елемента, на який ви хочете зробити посилання на цій сторінці. За допомогою інструментів розробки браузера / джерела перегляду знайдіть ідентифікатор елемента, на який ви хочете зробити посилання.
Якщо елемент не має ідентифікатора, і ви не контролюєте цей сайт, тоді ви не можете це зробити.
Це можливо лише в тому випадку, якщо цей сайт оголосив якіри на сторінці. Це робиться шляхом присвоєння тегу імені або атрибуту id , тому шукайте будь-кого з тих, хто знаходиться поруч із місцем, куди ви хочете зробити посилання.
І тоді синтаксис був би
<a href="page.html#anchor">text</a>
name
Атрибут підтримується тільки на <a>
елементі для цього, і це є застарілим в HTML 5.
Якщо цільова сторінка знаходиться в тому самому домені (тобто має однакове походження з вашою сторінкою), і ви не проти створення нових вкладок (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)})})('/programming/45014240/link-to-a-specific-spot-on-a-page-i-cant-edit','footer')
Якщо ви введете це в рядок місцезнаходження (майте на увазі, що Chrome видаляє javascript:
префікс, коли вставляється з буфера обміну), або зробіть його ahref
значення будь-якого посилання на цій сторінці (за допомогою Інструментів розробника) і клацніть на ньому, ви отримаєте іншу (дубльовану) сторінку запитань SO, прокручену до нижній і нижній колонтитули пофарбовані в червоний колір. (Затримка додана як обхідний шлях для вмісту, завантаженого за допомогою Ajax, що натискає нижній колонтитул вниз після завантаження.)
Примітки
window.open(url,'_self')
здається, порушує load
подію; в основному змушує window.open
поводитися як звичайна a href=""
навігація клацанням; ще не досліджував більше.javascript:
посилань, введених в URLbar, більше не працює в більшості браузерів із налаштуваннями за замовчуванням, як запобігання "self-XSS". Але ви можете спробувати це на консолі веб-розробників, де це має добре працювати.
Перш за все ціль відноситься до BlockID, який міститься або в HTML-коді, або в інструментах розробника хромів, на які ви намагаєтеся зв’язати. Кожен код різний, і вам потрібно буде викопати кілька, щоб знайти ідентифікатор, на який ви намагаєтеся посилатися. Це повинно виглядати приблизно так: 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
своє гіперпосилання. Зверніть увагу, що класифікатор призначений для мого внутрішнього використання і не стосується вас. Це лише для того, щоб я міг відстежувати свої магазини. Якщо ви хочете зробити посилання на щось інше, ніж на вашу домашню сторінку, ви б поставили
> http://mystore-classifier.com/pagename/#BlockID
Сподіваюсь, хтось знайшов це корисним, якщо щось не так з моїм поясненням, будь ласка, дайте мені знати, оскільки я не програміст HTML, моя мова - C #!
Майбутня функція Chrome "Прокрутка до тексту" - це саме те, що Ви шукаєте ....
https://github.com/bokand/ScrollToTextFragment
В основному ви додаєте #targetText=
кінець URL-адреси, і браузер перейде до цільового тексту та виділить його після завантаження сторінки.
Це у версії Chrome, яка працює на моєму столі, але наразі її потрібно ввімкнути вручну. Імовірно, це незабаром буде ввімкнено за замовчуванням у виробничих збірках Chrome та інших браузерах, тож ОК, щоб почати додавати до своїх посилань зараз, і він почне працювати тоді.