2009-11-07 3 views
0

a 요소에서 Javascript 함수를 호출해야합니다.자바 스크립트 함수에서 내 URL을 작성한 다음 href로 문자열을 반환해야합니다.

href='javascript:myjavascriptfunction();'. 몇 가지 datepicker 컨트롤에서 값을 가져오고 쿼리 문자열을 작성하고 urlencode하여 새 창이 열리도록 JavaScript 함수가 필요합니다. 지금까지는 모든 것을 가지고 있다고 생각하지만 URL을 작성하고 올바르게 반환하는 데 어려움을 겪고 있습니다. 지금까지 내 a 요소입니다.

내 자바 스크립트 함수에서 문자열을 작성하고 다음과 같이 반환 :

return queryString; 

결과 : 링크를 클릭하면 새 창이 함수 호출과 함께 부모 창 URL로 열립니다. 이름이 추가 되었습니까?

답변

1

새 창을 강제로 사용하려면 window.open()을 사용해야합니다. 새 창에서 자바 스크립트를 열 것을 말하고있는 것처럼 동작하는 유일한 이유가 있다고 생각합니다. 정확하게 수행하고 있습니다. 네가 말하는거야.

URL을 수집 한 후 window.open(urlvar);을 수행하면 원하는 것을 얻을 수 있습니다.

또한 깔끔하게 만드는 방법에 대해 this post을 확인하십시오. 켜기/끄기가 적절하게 저하 된 <a href=""> 최소한 href="javascript:void(0)"을 수행 한 다음 onclick="myjavascriptfunction(); return false;"을 수행하십시오.

+0

감사 파블로에, 그래서 여기 window.open를 사용한다 말했듯이. 그것을 고쳤다. KinoPiko 님도 의견을 주셔서 감사합니다. 나는 이제이 문제를 해결함으로써 또 다른 문제를 발견했다. 이제 escape 함수를 사용하여 datepicker 컨트롤에서 날짜를 urlencode하는 것이 실제로 작동하지 않는다는 것을 알았습니다. 어떤 아이디어? – danielea

+0

아마도 이것이 또 다른 질문입니다. –

0

JavaScript 기능의 반환 값은 링크의 HREF로 브라우저에서 사용할 수 없습니다. 의도대로이 작업을 수행하려면 JavaScript로 A 요소를 가져와 HREF에 간섭해야합니다. 즉 수 :

jiggerypokery() 당신이 만들어 원하는 URL입니다
var link = document.getElementById ("myhyperlink"); 
link.href = "http://example.com/" + jiggerypokery(); 

.

그러나 위의 내용은 바보입니다. 링크가 자동으로 링크를 덮어 쓰기 때문에 사용자가 어쨌든 두 번 클릭해야 할 것입니다. 파블로는 myjavascriptfunction()

var gotopage = "http://example.com/" + jiggerypokery(); 
window.open (gotopage); 
관련 문제