2009-06-25 1 views
1

저는 학습 프로젝트로 기본 공유 버튼을 만들려고하는 자바 스크립트 초보자입니다. 나는 한 가지 측면에 대해 다소 난처한 상황이다. 현재 페이지의 URL을 가져 와서 공유 양식을 미리 채우는 URL로 전달할 수 있지만 HTML 제목을 가져 오는 방법을 모르겠습니다. 여기이 "공유"버튼을 사용하여 URL 외에 현재 URL의 HTML 제목을 가져 오는 방법은 무엇입니까?

내가 멀리에있는 내용은 다음과 같습니다

<a href="http://www.domain.com/submit" onclick="window.location = 'http://www.domain.com/submit?url=' + encodeURIComponent(window.location); return false;"> Share This </a> 

내가뿐만 아니라 현재 페이지의 제목을 얻을 수있는 온 클릭 섹션을 추가하는 방법은 무엇입니까? URL이 "title ="로 전달됩니다.

보너스 : 현재 페이지에서 강조 표시된 텍스트를 보내기 위해 추가 할 수있는 것이 있습니까? 즉 "= 몸"

그래서 난이 공백을 채우기 위해 찾고 있어요 같이 URL에 갈 것 :
<a href="http://www.domain.com/submit" onclick="window.location = 'http://www.domain.com/submit?url=' + encodeURIComponent(window.location); return false; + 'title=' + SOMETHING + 'body=' + SOMETHING'"> Share This </a> 

가 적어도 난 그렇게 생각. 나는 100 % 확실한 것은 +와 s가 올바른 위치에 있다는 것을 확신한다.

+1

답변이 없지만 인터넷 익스플로러는 탐색 할 수있는 URL의 길이에 제한이 있습니다. 그 한계는 2048이며 URL + 제목이 그 이상인 경우 일부 트리밍이 발생합니다. –

답변

2

나는 당신이 원하는 것 같아 document.title. 선택한 텍스트를 가져 오는 것은 좀 더 복잡합니다. 특히 IE를 지원하려는 경우 더욱 그렇습니다. DOM 표준은 window.getSelection이지만 IE 용으로는 엉망으로 처리해야합니다. ranges - IE8에서 개선 된 점이 있는지 확인하지 않았습니다.

나는 공유 버튼이 어디에 있는지 물어볼 것입니다. 페이지에있는 경우 버튼을 클릭하면 선택된 텍스트의 선택이 취소됩니다.

+0

이것은 사람들이 자신의 블로그에 Digg-clone의 제출 양식에 "제출"할 수있는 HTML 버튼입니다. 이런 버튼을 만드는 것이 탄탄한 학습 프로젝트가 될 것이라고 생각했습니다. – bflora2

+0

좋아요, 그렇다면 사용자가 버튼을 클릭 할 때 텍스트가 선택 취소되는 문제가있을 것이라고 생각합니다. 인접한 텍스트 요소를 찾아 선택하면 무언가를 해결할 수 있지만 다른 유형의 블로그에 대해 다른 버튼을 구현해야 할 수도 있습니다. 단추가 아닌 책갈피 렛으로 구현 한 경우 작동 할 수 있습니다. – robertc

0

선택한 텍스트를 얻을 수있는 방법은 여러가지 방법이 있습니다, 다른 브라우저는 다른 사람들을 구현합니다

먼저, 문자열로 선택한 텍스트를 반환 document.getSelection(),있다. 그런 다음 window.getSelection()이 있으며 선택 개체가 반환됩니다. 원시 텍스트를 얻으려면 toString() 메소드를 사용하십시오. 텍스트를 가져 오는 IE 방법은 범위, 즉 document.selection.createRange().text을 사용합니다.

제가 위에서 언급 한 방법 중 하나를 지원하는 모든 브라우저 document.getSelection() 사용할 수 있도록 래퍼 기능의 사용을 건의 할 것입니다 : 보조 노트로

if(typeof document.getSelection === 'undefined') { 
    document.getSelection = 
     window.getSelection ? function() { 
      return window.getSelection().toString(); 
     } : 
     document.selection ? function() { 
      return document.selection.createRange().text; 
     } : 
     null; 
} 

을 : 당신은 locationlocation.href을 설정 (그리고 안)를 눌러 문서의 주소를 변경하십시오.

관련 문제