2012-07-12 3 views
0

지정한 ID를 가진 본문 태그에 대해 개발 한 모든 웹 페이지 (사용자가 현재 페이지가 아닌)를 검색 할 수 있습니까? 그렇다면 어떻게 자바 스크립트에서이 작업을 수행할까요? 또한 고유 ID가있는 본문이 포함 된 페이지로 사용자를 리디렉션하는 방법은 무엇입니까?<body>의 모든 페이지에서 고유 ID를 검색하십시오.

+1

(jQuery를 사용하여) mvc 스타일의 응용 프로그램을 사용하는 경우에는 page/specificPageId (또는 이와 비슷한 내용)로 쉽게 리디렉션 할 수 있습니다. 'window.location.href = newUrlHere' (당연히 이것을 위해 당신은 당신의 코드가 알고있는 특정 페이지 네이밍 스키마를 가져야 만합니다.) – nbrooks

+1

고마워요, 특정 페이지 네이밍 스키마가있어서 좋은 해결책이 될 것입니다. 그러나 이름에 특정 키워드가 포함 된 웹 페이지를 검색 할 수 있습니까? – user1410668

+0

왜 몸집이 아닌 URL로 이동하려고하십니까? 예를 들어, 본문 ID가 "123"인 페이지가 있다면 "mypage123.htm"(또는 .php, .asp, .jsp 등) 페이지를 호출하십시오. 스타일 시트를 페이지간에 공유하고 한 페이지의 본문에 특정 스타일을 적용하려는 경우에만 본문에 ID를 부여 할 수있는 유일한 이유가 있습니다. – nnnnnn

답변

3

당신이 정말하고 싶은 경우에는 페이지 'URL을 알고 있다면, 당신은 그것을 할 수있는 : 그 범위가 제한되어 있기 때문에 당신은 자바 스크립트를 사용하여이 작업을 수행 할 수 없습니다

function searchPages(urls,elem,success,failure){ 
    nextUrl(urls,0); 
    // this calls itself as a callback because $.load is asynchronous 
    function nextUrl(i){ // this function tries to load a body#myId for the url 
     $('<div /'>).load(urls[i]+' '+elem,function(){ 
      // if it loaded there'd be html 
      if($(this).html()!=='') success.call(this,urls[i]); 
      // if you've loaded all the pages, then you're done 
      if(i===urls.length) 
       failure.call(this,urls[i]); 
      // otherwise, call the function again for the next url 
      else nextUrl(i+1); 
      }); 
    }; 
} 

searchPages(['/url1','/url2','/url3'],'body#myId',function(url){ 
    console.log(url); // this is the url you want 
    console.log($(this)); // $(this) is the div that the body elem was loaded into 
},failed); 

// this is called if you don't find the page 
function failed(){ alert('no page found'); }; 
+0

이 코드의 작동 방식에 대한 설명을 추가 할 수 있습니까? 그렇게한다면 나는 +1 할 것이다. – Jon

+0

+1. 영리한 해결 방법. 나는'.load()'가 스타일 시트, 외부 스크립트, 소스에서'head'를 제거 할 것이기 때문에 이것이 쓸모있는 해결책이 될 것이라고 생각하지는 않는다. – nbrooks

+0

@nbrooks 끝의 아이디어 'body'의'ID'를 얻는 것입니다, 그렇지 않습니까? +1 too – JFK

관련 문제