<script type="text/javascript">
function testMethod()
{
document.location.href="file.asp";
}
</script>
<button onclick="testMethod();">눌러</button>
(평소처럼 복사해 온게 아니라 틀리지 않았나 몰라.. ㅡ..ㅡ)
어쨌든 로직은 필요없으니 보자면 저런 구조다. 버튼을 클릭하면 자바스크립트 메서드가 호출되는 상황.
IE에서는 아무런 문제가 없었다. 그런데 파이어폭스에서는 아무런 동작도 되지 않았다. 계속적인 테스트.....
일단 펑션자체는 잘 먹었다. <a>로 태스트했더니 location.href는 잘 동작했는데 <button>에서만 동작을 안해서 처음에는 onclick가 안되는 줄 알았는데 또 다른 <button>에서 onclick으로 호출된 펑션이 폼.submit의 형태를 띄고 있는 건 또 잘 작동이 됐다.
location.href가 안되는거냐... onclick이 안되는거냐... 엄청 고민했다.. 찾고 또 찾고....
역시 구글링... 구글링으로 찾은 외국사이트가 날 살렸다. 해결법과 이유까지 확실히....
파폭에서 <button>은 기본적으로 submit의 형태로 동작을 한다. 그래서 submit이 있는 경우는 제대로 동작하지만 submit이 없으니 동작이 무시되어 버린 것이다.
해결책은 return false;가 있으면 된다. 펑션안에 있어도 되고.... 호출할 때 onclick="testMethod();return false;"와 같이 써주거나 onclick="return testMethod();"로 써주면 정상적으로 작동한다.
덧) 이거 하는데 2시간도 더 걸렸다.. ㅡ..ㅡ 근데 평소 올블에서의 분위기로 느껴지던 웹표준과 크로스브라우징.... 막상 자료를 찾으니까 자료가 거의 없다.. ㅠ..ㅠ 아직 내가 체감하는것 만큼의 중요한 이슈가 아닌건가? ㅡ..ㅡ
잘 읽어보고 갑니다. 아직 테스트는 안해봤습니다. ^^
아주 오래전에 테스트해 본거라 확신까지는 몰라도 아마 될겁니다. ^^
return 함수, 함수;return false; 모두 동작하지 않네요 ㅜㅜ;;
저도 파폭에서 버튼 안되어서 열심히 해결책 찾고 있는 중입니다. 우우...
흠... 포스팅한지가 오래되었지만 테스트후에 올려서 내용이 틀렸을것 같지는 않은데요?
파폭버전이 어떻게 되시는지요? 이당시에는 파폭3이 나오기 전이라 파폭3에서는 테스트를 안해봤을꺼거든요.
감사합니다 테스트중에 버튼문제로 계속 헤딩했는데 이쪽 포스트로 해결했습니다
잘보고 갑니다.
정말 감사드려요
좋은하루되세요
도움이 되셨다니 다행이네요....
방문해 주셔서 감사합니다. 좋은하루 되세요.
지금 학교 과제를 하고 있는데,,
버튼 원클릭이 안되었는데,,, IE에서는 테스틀 안해봐서 잘모르겠고요;;
주 브라우저가 파이어폭스 이다보니,, 한번 해봐야게 겠어요ㅣ..;
감사합니다.
이 문제인지는 알수 없지만 잘 해결되시길.. ^^
<button type="button"> 으로 type을 지정하면 해결됩니다.
그런방법이 있었나요? 감사합니다.
테스트 해보려고 했더니 파이어폭스 3.5에선 해당 문제에 변경이 되었는지 정상적으로 작동되는군요. 나중에 테스트 해봐야겠습니다.
함수안에도 return false; 를 넣어줘야 합니다.
onclick에다 false를 리턴해주면 기본동작이 먹히지 않기 때문에 return 함수()와 같은 형태가 아니면 굳이 함수내에서 return false를 줄 필요는 없을것 같은데요. 자세히 얘기해주시면 감사하겠습니다.
return 펑션// 펑션;return false;
두개다 안되네요, 다른방법이 없을가요 ``?
파이어폭스에서 location.href를 사용중이신건가요?
좀더 자세한 내용을 알려주셔야 답변을 드릴수 있을것 같습니다. ^^;;
파폭 버전 3.6.12인데요 return 펑션// 펑션; return false; 둘다 안됩니다.
<input type="button" alt="등록" id="submitBtn" onclick="return doSave();" value="등 록" />
방법이 없는건가요??
안된다는게 어떤 부분이 안된다는 말슴이신가요? doSave()가 호출안되시는건가요?
주신 소스는 일반적인 input버튼이라서 doSave()가 호출 안될일은 없어 보이는데요... 혹 submit버튼이시라면 type="submit"으로 생성하셔서 onclick이 아닌 form onSubmit 이벤트를 등록하셔서 doSave()처리를 해주는것이 더 정상적이니 방법입니다.
감사합니다. 구글 크롬에서 <form><button onclick="call();"></form> 식으로 썼을때도 마찬가지 이유로 동작하지 않던 참이었습니다.
onclick="loginCheck();return false;" 최고네요.
근데 썻는데도 안되면요...?