웹 페이지의 특정 부분에 연결


93

내가 관리하지 않는 다른 웹 사이트의 긴 웹 페이지 부분에 대한 링크를 생성하려면 어떻게해야합니까?

내 링크 끝에 #partofpage의 변형을 사용할 수 있다고 생각했습니다. 어떤 제안?



링크, 다음과 같은 대답 사용의이 부분을 연결하려면 stackoverflow.com/questions/15481911/...
Ruturaj Bisure에게

링크, 다음 페이지 사용이 부분을 연결하려면 stackoverflow.com/questions/15481911/...
Ruturaj Bisure에게

답변:


82

그냥 APPEND #의 ID로 다음 <a>(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
해당 ID가 여러 번 사용되면 어떻게됩니까? 내가 사용되는 MS 사이트에 실행 idid="in-closing">Some string</id>여러 번 Some string새로운 캐릭터에게 몇 번이되었다합니다.
kayleeFrye_onDeck

5
@kayleeFrye_onDeck 여러 개가있는 경우 HTML이 유효하지 않습니다 id. 정의에 id해당 태그에 고유하기위한 것입니다
계산법 캐년에게

1
명확히 해주셔서 감사합니다, @KolobCanyon! :)
kayleeFrye_onDeck

한 번만 사용되는 클래스로 이것을 수행하는 방법이 있습니까?
Chagai Friedlander

순진했지만 실수로 www.site.com/page/#target실패 했을 수도 있습니다. /URL 끝에 가 없는지 확인하십시오 .
노아

29

다음 형식을 사용하여 "점프 링크"를 만듭니다.

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

앵커는 해당 페이지에서 링크하려는 요소의 ID입니다. 브라우저 개발 도구 / 소스보기를 사용하여 연결하려는 요소의 ID를 찾으십시오.

요소에 ID가없고 해당 사이트를 제어하지 않으면 할 수 없습니다.


웹 페이지의 특정 부분에 연결된 ID가 없으면 어떻게 되나요?
ajaysinghnegi dec.

그런 다음 요소에 ID를 추가해야합니다
카울

1
인터넷 웹 페이지의 태그에 ID를 추가 할 수 있습니까?
ajaysinghnegi dec.

2
아니요, 다른 웹 사이트에서이 작업을 수행하려면 스크롤하려는 부분으로 스크롤하기 위해 사용자 지정 JS 북마크를 만들 수 있습니다. ID가 설정되지 않은 경우 고정 된 링크를 작동시킬 수 없습니다.
카울

그렇게하기 위해 위에서 지정한 것에 링크 할 수 있습니까? 나는 전에 그런 종류의 어떤 것도 한 적이 없습니다.
ajaysinghnegi dec

10

해당 사이트가 페이지에서 앵커를 선언 한 경우에만 가능합니다. 태그에 이름 또는 ID 속성 을 부여하여 수행 되므로 링크하려는 위치에 가까운 항목을 찾으십시오.

그리고 구문은

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

name속성 만 지원됩니다 <a>이러한 요소, 그리고 HTML 5에 사용되지 않습니다
쿠엔틴

나를 위해 요소에 너무 낮게 초점을 맞추고 있습니다. 누구든지 똑같은 일이 일어 났습니까?
Kolob Canyon

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')

이것을 위치 표시 줄에 입력 javascript:하거나 ( Chrome 이 클립 보드에서 붙여 넣을 때 접두사를 제거한다는 점에 유의 ) href이 페이지의 링크 값으로 만들고 (개발자 도구 사용) 클릭하면 다른 (중복) SO 질문 페이지가 스크롤됩니다. 바닥 글과 바닥 글이 빨간색으로 칠해졌습니다. (로드 후 바닥 글을 아래로 밀어내는 ajax로드 콘텐츠에 대한 해결 방법으로 지연이 추가되었습니다.)

메모

  • 현재 Chrome 및 Firefox에서 테스트되었으며 정의 된 표준 동작을 기반으로하므로 일반적으로 작동합니다.
  • 원본 페이지와 분리되어 있기 때문에 여기 SO에서 대화 형 스 니펫으로 설명 할 수 없습니다.
  • MDN : Window.open ()
  • (1) 사건을 window.open(url,'_self')깨는 것 같습니다 load. 기본적으로 window.open일반 a href=""클릭 탐색 처럼 작동합니다 . 아직 더 연구하지 않았습니다.

허가 아래로 스크롤하지 않았고 바닥은 빨간색되지 않는다
존 D를

1
… 그리고 그것은 새 창을 열지도 않았을 것입니다. 대부분의 이유 javascript:는 URLbar에 입력 된 링크의 실행이 "self-XSS"방지와 같은 기본 설정을 사용하는 대부분의 브라우저에서 더 이상 작동하지 않기 때문일 것입니다. 그러나 잘 작동하는 웹 개발자 콘솔에서 시도해 볼 수 있습니다.
myf

누군가 이것을 편집하고 사용하기 쉽게 만들 수 있습니까? 나는 자바 스크립트 전문가가 아니고 무엇을해야할지 모르겠다
Chagai Friedlander

3

첫 번째 대상은 링크하려는 HTML 코드 또는 크롬 개발자 도구에서 찾은 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.