2010-04-15 3 views
0

안녕 모두,크롬에서 첫 번째 호출 중에 Javascript 기능이 이상하게 작동합니까?

아래에서 언급 한 javascript 코드는 크롬을 포함한 모든 브라우저에서 정상적으로 작동합니다 (두 번째 통화 이후부터). 링크 새의 URL을 클릭 한 후 모든 브라우저에서

URL입니다 : // localhost를

function call(val){ 
     url = window.location.href; 
     indexnum = url.lastIndexOf("/"); 
     str = url.slice(indexnum+1); 
     window.location.href = url.replace(str, "sample.php?src_q=") + val; 
    } 

나는

<?php echo "<a href='#' onclick='javascript:call(\"$fieldvalue\");'>$fieldvalue</a>" ?> 

정상적인 동작 아래와 같이 링크의 onclick을에이 함수를 호출하고 /mysite/sample.php?src_q=val

이상한 행동 : 크롬 값이 변수 val 인 링크를 처음 클릭하면 url과 그 val로 바뀝니다.

http://localhost/mysite/sample.php?src_q=http://localhost/mysite/val

다음과 같이 이상한 행동은 크롬에서 첫 번째 클릭시 발생하는 UE. 동일한 탭의 두 번째 호출에서 변수 val의 값이 올바르게 작동하고 원하는 url을 얻습니다.

Google에서 시도했지만 아무런 설명도 찾을 수 없습니다.

미리 감사드립니다.

+3

당신이 전화하는거야 기능과 일치하지 않는 게시 기능을 ...입니다 이 올바른 기능과 그냥 질문 오류, 또는 다른 방법은 주위에? –

+0

또한 : 귀하의 "onclick"속성에서 "javascript :"접두사를 제거하십시오. 불필요합니다. (그러나 문제는 없습니다.) – Pointy

+0

또한 작은 따옴표로 묶인 HTML 속성은 유효하지 않습니다. – kibibu

답변

1

몇 가지 :

  1. 드롭 "자바 스크립트 :"를 onclick의 시작 부분에서. 그 번호는 href이 아니고 onclick이 아닙니다.

  2. 당신은 사용자가 링크를 클릭 할 때 false을 반환하여, 탐색을 취소 할 수 있습니다

    :

    onclick='callSearch2(...); return false;' 
    
관련 문제