2012-03-14 2 views
0

http://jsfiddle.net/dS4r3/24/?q=hsbc이 컨텍스트에서 구현 된 JS 코드의 문제점은 무엇입니까?

이 코드는 페이지의 리퍼러를 취하고있다 않는 것은 무엇 유는 특정 사업부가 (이 또한 그것을 보여줍니다) 내용

로에 채워가 참조하는 키워드 중 하나가 포함 된 경우 거기를 클릭하면 div가 나타나고 키워드 "hsbc"가 포함 된 해당 콘텐츠로 채워지는 것이 올바르게 작동하는 것을 볼 수 있습니다. 즉, 함수가 실행 중입니다. 내가 실행하는 것 나던 여기에 동일한 코드 기능을 구현 할 때

지금 문제는 다음과 같습니다

왜 두 번째 링크에서 작동하지 않습니까?

답변

1

jsfiddle은 리퍼러를 정상적으로 처리하지 않으므로이 경우 jsfiddle 형식을 배우면 웹 사이트로 전송되지 않습니다. 귀하의 웹 사이트는 리퍼러를 정상적으로 처리하고 있으며 리퍼러 (http://stackoverflow.com/questions/9695194/whats-wrong-with-this-js-code-implemented-in-this-context)는 단순히 문자열 hsbc을 포함하지 않습니다. 당신이해야 할 일은

cotizador-de-seguros-auto에 링크가 웹 사이트에 새 페이지 (예를 들어, new-page)를 생성 new-page/?kw=hsbc를 방문하여 새로운 링크를 클릭합니다. 그러면 문제는 사라질 것입니다.

+0

위대한,하지만 위의 게시 된 두 번째 링크를 붙여 넣을 수 있도록 브라우저에 직접 URL을 붙여 넣기 같은 직접 액세스하려는 경우, 어떤 경우에는 직접 referer 것입니다. 무슨 말을하는 건지 정확히 알 수는 없지만 직접 액세스하는 경우는 무엇입니까 – sebas

+0

URL을 입력하거나 브라우저에 URL을 붙여 넣으면 참조자가 없습니다. 리퍼러는 한 페이지에서 다른 페이지로 이동할 때만 적용됩니다. –

1

페이지의 리퍼러는 링크를 시작한 페이지입니다. 이 경우 jsfiddle에서 jsfiddle 링크를 클릭하면 jsfiddle의 리퍼러는 http://stackoverflow.com/questions/9695194/whats-wrong-with-this-js-code-implemented-in-this-context 프레임 내에 jsfiddle이 실행되어 서브 프레임의 리퍼러를 부모로 가져옵니다. jsfiddle 내에서 예제 테스트가 작동하는 이유입니다. 난 또는 top.document.referrer 또는 parent.document.referrer stackoverflow URL을 얻으려면 jsfiddle 페이지 (js 크로스 사이트 보안 제한을 위반하지 않는 경우)로 참조 할 필요가있을 것 같아요.

두 번째 링크의 컨텍스트 내에서와 같이 현재 페이지의 URL이 무엇인지 알고 싶으면 document.location.href를 사용하여 document.referrer 대신 http://segurosendirecto.com.ar/cotizador-de-seguros-auto/?kw=hsbc을 얻습니다. 그러면 URL 끝에 hsbc가 있습니다. document.location.href는 hsbc 매개 변수를 얻기 위해 실제 사이트에서 원하는 것일 수 있습니다.

+0

메신저 Google에서 해당 페이지로 들어오는 트래픽을 위해 사용하므로 계속 문서를 사용하는 것으로 추측됩니다. 신고자 – sebas

+0

프레임과 관련이있는 것은 무엇입니까? 그것은 프레임에로드되는 경우에도, 리퍼러는 그것을로드하는 프레임의 페이지의 것입니다 ... – Shea

0

코드가 제대로 실행되지 않습니다. 당신의 모든 코드 랩 :

$(function(){ 

}); 

그런 다음 머리에 전체 <script></script> 블록을 이동합니다.

더 좋은 방법은 head 태그에있는 기존 문서 준비 문을 코드에 추가하는 것입니다.

$(document).ready(function() { 

자세한 내용은 here을 참조하십시오.

관련 문제