2012-05-16 2 views
0

북마크를 수행해야하지만 내 페이지에서 직접 수행해야합니다.사용자가 선택한 웹 주소의 DOM에 액세스하는 방법

URL을 사용하여 웹 페이지의 document.title 속성을 가져와야합니다.

사용자가 www.google.com을 입력하면 iframe에서 google.com을 가져 와서 document.title 속성에 액세스 할 수 있기를 바랍니다.

북마크 바 (북마크 바에서 실행되는 javacript)는 사용자가있는 사이트의 document.title 속성에 액세스 한 다음 해당 정보를 서버에 아약스로 전달할 수 있습니다.

이것은 본질적으로 내가하고 싶은 것이지만 내 웹 페이지에서 북마크릿을 사용하지 않고 직접 수행합니다.

+0

[JQuery/JS를 사용하여 URL (외부 URL)이 지정된 웹 페이지의 제목을 어떻게 얻을 수 있습니까?] (http://stackoverflow.com/questions/7901760/how-can-i-get- the-title-of-a-web-page-given-the-url-an-external-url-using-jquer) –

+0

"해킹"이 있기를 바랬습니다 ... 북마크릿은 모든 페이지에서 실행할 수 있습니다 ... 그것들을 어떤면에서 강력하게 만들지 만 어떤 사이트에서도 그 힘을 발휘하기 위해서 ... 사용자는 북마크에 끌어다 놓기 만하면됩니다. –

답변

2

따르면에 This question 당신은 achive 수 있습니다 여기에

는 페이지를 가져 오지와 PHP의 DOM 확장을 사용하는 기본적인 PHP 스크립트는 페이지의 제목을 구문 분석하는 것입니다 이 PHP를 사용하여이 코드를보십시오 :

<?php 

function getTitle($Url){ 
    $str = file_get_contents($Url); 
    if(strlen($str)>0){ 
     preg_match("/\<title\>(.*)\<\/title\>/",$str,$title); 
     return $title[1]; 
    } 
} 
//Example: 
echo getTitle("http://www.washingtontimes.com/"); 

?> 

그러나 나는 엉덩이 JS로 파일 내용을 읽고 태그를 검색하는 것과 동일한 로직을 수행 할 수 있습니다.

시도 here

+0

감사합니다 .js 솔루션을 찾고 싶었지만 서버를 공격해야합니다. –

+0

편집 된 답변을 확인하십시오. –

1

불행히도 쉽지 않습니다. 보안상의 이유로 JavaScript는 동일한 도메인에 있지 않은 프레임이나 윈도우의 문서 객체에 액세스 할 수 없습니다. 이런 종류의 일은 요청 된 페이지를 가져올 수 있고, DOM을 거쳐 <title> 태그의 텍스트를 검색 할 수있는 백엔드 PHP 스크립트에 대한 요청으로 완료되어야합니다. 당신이 그 능력을 가지고 있지 않다면, 당신이 요구하는 것이 훨씬 더 어려울 것입니다.

<?php 
$html = file_get_contents($_GET["url"]); 

$dom = new DOMDocument; 
$dom->loadXML($html); 
$titles = $dom->getElementsByTagName('title'); 

foreach ($titles as $title) { 
    echo $title->nodeValue; 
} 
?> 

데모 :http://www.dstrout.net/pub/title.htm

+0

나는 "해킹"이 있기를 바랬다 ... 북마크릿은 어느 페이지에서나 실행할 수있다 ... 어떤 방식 으로든 강력하게 만든다. 그러나 어떤 사이트에서도 그 힘을 발휘할 수있다 ... 사용자는 드래그하여 북마크에 놓으십시오 ...이 경우에만 에뮬레이션 할 수있는 해킹이 있습니다. –

0

당신은 당신을 위해 페이지를 검색 할 서버 측 스크립트를 작성할 수 있습니다 검색 (즉 컬을 사용) 및 DOM을 갈 거예요 및 JSON으로 원하는 속성을 반환합니다. 그런 다음 아약스와 통화하십시오.

관련 문제