2012-09-02 3 views
0

내 웹 사이트에 모든 프로젝트의 엄지 손가락 목록이있는 페이지가 있습니다. 특정 엄지 손가락 (프로젝트)을 클릭하면 Fancybox가 프로젝트의 세부 정보를 iframe에로드합니다. 모든 작품은 훌륭합니다! (iframe의 콘텐츠에는 탐색, 헤더 및 기타 웹 사이트 요소가 포함되지 않습니다.)fancybox iframe 콘텐츠 및 Google 검색

Google 검색 결과 페이지에 문제가 있습니다 - Google에서 모든 세부 정보 페이지를 색인 한 결과 사용자가 Google 검색 결과에서 링크를 클릭하면 세부 정보 콘텐츠 페이지가 브라우저에서 열립니다 (대신 Fancybox iframe). 세부 정보 페이지가 탐색 페이지를 표시하지 않기 때문에 상황이 좋지 않습니다.

사용자에게 친숙한 솔루션이 있습니까?

+0

내 머리 꼭대기에서 URL을 스니핑하는 스크립트를 각 세부 정보 페이지에 포함시켜야하고, 맨 위 페이지에서 열면 URL을 수정하여 기본 페이지로 리디렉션하는 것처럼 보입니다. 메인 페이지, 수정 된 URL을 다시 검색하고 fancybox에서 적절한 페이지를 여는 방아쇠를 당깁니다 (물론 구조 나 URL에 따라 다르지만 너무 자세하지는 않습니다) – JFK

답변

0

내가 언급 한 것처럼 각 "세부 사항"페이지에 URL을 스니핑하고 페이지가 새 창 (맨 페이지)에서 열렸는지 여부를 감지하는 스크립트를 포함해야합니다 (주 페이지로 리디렉션하는 경우). (예를 들어, hash을 사용하는) 수정 된 URL이있는 페이지에서 메인 페이지의 fancybox에있는 "detail"페이지를 열 수 있습니다. 각 "세부 사항"페이지에 대한 서로 다른 값으로

<script type="text/javascript"> 
var isWindow = self == top; // returns true if opened in a new window, otherwise it migh be inside an iframe 
if(isWindow){ 
// alert("this page was opened in a new browser window"); 
// then redirect to main page and add hash "detailedXX" 
window.location = "{URL}/mainpage.html#detailed01" 
} 
</script> 

변경 detailed01 :

그래서 당신은 각각의 "세부 사항"페이지에서이 스크립트를 포함 할 수있다.

그런 다음 메인 페이지에 내가 주 리디렉션 동안 우리가 사용하게 될 그 hash 일치하는 각 앵커에 ID을 포함

<a id="detailed01" class="fancybox" href="detailed01.html">Open project detail page 01 in fancybox</a> 
<a id="detailed02" class="fancybox" href="detailed02.html">Open project detail page 02 in fancybox</a> 

공지 사항 등의 각 세부 페이지로 연결되는 링크가있을 수 있습니다 페이지.

http://www.picssel.com/playground/jquery/detailed01.htmlhttp://www.picssel.com/playground/jquery/detailed02.html

: 나는 DEMO here

이 데모 개방이 "세부"페이지를 설정

<script type="text/javascript"> 
var thisHash = window.location.hash; 
$(document).ready(function() { 
if(window.location.hash) { 
    // get the URL without hash so we can restore it if needed 
    var thisWindowLocation = window.location; 
    var thisWindowLocationSplit = String(thisWindowLocation).split("#")[0]; 
    $(thisHash).fancybox({ 
    width: 800, 
    height: 320, 
    fitToView: false, 
    autoSize : false, 
    type: 'iframe', 
    afterClose : function(){ 
    // returns URL to main page with no hash 
    window.location = thisWindowLocationSplit 
    } 
    }).trigger('click'); 
} 
// fancybox for normal main page operation 
$(".fancybox").fancybox({ 
    width: 800, 
    height: 320, 
    fitToView: false, 
    autoSize : false, 
    type: 'iframe' 
}); 
}); // ready 
</script> 

: 뭔가처럼

는 그런 다음 fancybox 스크립트가 될 수 있습니다 직접 열려고하면 will redirec calling page에 t와 fancybox 오픈

1

당신은 다음의 링크에 rel = "nofollow"를 추가 할 수 있습니다 구글에 의해 색인이 생성되지 않습니다 해당 페이지로 괜찮 경우 : 여기

자세한 내용 : http://support.google.com/webmasters/bin/answer.py?hl=en&answer=96569

+0

그것은 좋은 대답이고 나는 그것에 대해 전에 생각했습니다. 그러나 귀하의 웹 사이트에서 [Google 맞춤 검색] (http://www.google.com/cse/)을 사용하고 있다면 (내 프로젝트 중 하나에서와 같이) 해당 페이지를 귀하의 콘텐츠의 일부로 찾을 수 있습니다. 결과 페이지가 필요하므로 색인 생성이 필요할 수 있습니다. – JFK