2011-05-09 3 views
1

내 페이지의 요소에 대해이 토글 버튼이 있으며이를 클릭하면 스크립트가 실행되고 요소를 토글하는 것을 볼 수 있지만 다음과 같이 새 창이 나타납니다. JS 객체가 [나는 추측한다]. 그것은 내 href의 URL이있는 단지 빈 창이 있으며 [object Object]
은 괜찮 으면 좋겠지 만, 즉 firefox는 이것을 수행합니다. 그들은 방법 난이게 할jQuery 스크립트가 Firefox 및 Internet Explorer에서 새 창을 표시합니다.

<a href="javascript:jQuery('#thatDude').toggle();">click</a> 
<div id="thatDude">blah</div> 

짝수 낯선 부분은 내가 또한 가지고있다이 내 스크립트 파일

jQuery('.someBtn').live('click', function() { 
    jQuery('#someForm').toggle(); 
}); 

내가 그걸 클릭하면 - 그것은 그래 ... 어디에서든지 잘 작동 나는 대의원에게 라이브로 바꿔야한다는 것을 안다.]]

무슨 일이 일어나는 지 아십니까? JQuery와 1.6 [있지만, 1.4.4이 동일한 않습니다 ..]

당신의 클릭 이벤트 핸들러에서

+0

다음에 질문을 제출 한 후 제출하십시오. 질문의 서식에는 수정해야 할 오류가있었습니다. 이 권리를 처음으로 얻는다면, 당신은 더 나은 대답을받을 가능성이 더 큽니다. –

+0

오, 미안해, 나는 모든 코드를 감쌀 수 밖에 없었다. –

답변

7

URI의 javascript: URI에있는 스크립트의 반환 값은 반환 값이 무효가 아닌 경우 HTML로 처리되고 구문 분석됩니다. 이 기능을 구현하지 않는 WebKit을 제외하고 (아래 언급 된 한 가지 제외). 귀하의 경우에는 jQuery의 toggle()이 정의되지 않은 실제 값을 반환하고 해당 값이 HTML로 구문 분석 될 문자열로 취급된다고 가정합니다.

당신은 IE와 파이어 폭스와 오페라에서이 간단한 테스트 케이스의 동작을 볼 수 있습니다

:

을 : 그들은 하나 개의 코드 경로를 특수 해킹 때문에이 웹킷에서 작업을 수행하지만,

<a href="javascript:'<h1>some text</h1>'">Click me</a> 

이 완전히 웹킷 브라우저에서 실패

<iframe src="javascript:'<h1>some text</h1>'"></iframe> 

스크립트의 반환 값이 무효인지 확인하려면 스크립트 끝에 void(0)을 입력하십시오.

+0

와우, 나는이 곳을 너무 좋아한다. 고맙습니다 ! –

0

반환 거짓 너무 많은 덕분에, 즉 도움이 사용 임.

관련 문제