2011-10-23 11 views
1

내 브라우저 (firefox)는 팝업이로드되는 것을 방지하고, 링크가 새 탭이나 창에로드되기를 원하는 단축키와 함께 명시 적으로 말하지 않는 한 현재 탭에서 새 창을 여는 링크를로드합니다 (예를 들어, 링크를 중간 클릭하거나 ctrl을 클릭하여 왼쪽 버튼을 클릭하면 새 탭에서 링크가 열리고 쉬프트 + 새 창에서 왼쪽 클릭).자바 스크립트 클릭 이벤트

링크를 누르면 코드가 실행되고 위에서 설명한 사용자 환경을 제거하지 않고 만든 링크를로드하는 javacript 함수 f()을 만들고 싶습니다. 지금 가지고있는 것은 <a href="javascript:void(0)" onclick="f()"/>과 비슷하지만 중간 클릭 (URL 대신 javascript:void(0)이로드 됨)이 작동하지 않으며 위에 설명 된 다른 기능도 수행되지 않습니다.

내 문제를 해결하는 방법에 대해 알고 싶습니까?

감사합니다.

답변

4

당신은 window.open ('url')을 시도 했습니까?

은 다음을 참조하십시오 http://www.javascript-coder.com/window-popup/javascript-window-open.phtml

또한, 지금까지의 내가 아는 한, 당신은 브라우저에서 새 탭 또는 새 창으로 열림 여부를 제어 할 수 없습니다. 그것은 모든 사용자마다 다른 브라우저 설정입니다.

또한 온 클릭을 제거하고 사용하여 시도 할 수 있습니다 <a href="javascript:f()"></a>

EDIT 중간 사용하여 자바 스크립트 새 탭을 여는 대신 실행으로 클릭 문제가있는 것 같습니다

: middle click (new tabs) and javascript links

을 그 사이트가 말했듯이, 당신은 대신 요소에 대한 id를 생성하고 javascript를 통해 바인딩 할 수 있습니다.

**

은 해당 링크에서 촬영 : 당신의 JS에서

<a href="/non/ajax/display/page" id="thisLink">...</a> 

그 다음을,이 ID는 AJAX 호출을 할 수의를 통해 링크를 후크. 클릭 이벤트가 버블 링되지 않도록해야한다는 점에 유의하십시오. 대부분 프레임 워크에는 호출 할 수있는 이벤트 킬러가 내장되어 있습니다 (이벤트 클래스에서 으로 보입니다).

jQuery를하지 않고
$("#thisLink").click(function(ev, ob) { 
    alert("thisLink was clicked"); 
    ev.stopPropagation(); 
}); 

, 그것은 다음과 같습니다 :

document.getElementById('thisLink').onclick = function(e) 
{ 
    //do someting 
    e.stopPropagation(); 
} 
+0

어디에 window.open ('url')을 삽입 하시겠습니까?그것이 f() 함수 안에 있다면 링크를 중간 클릭하면 url이 'javascript : void (0)'인 새 탭이 열린다는 사실은 변하지 않을 것이라고 생각합니다. 내 브라우저 옆에서 아무 것도 제어하고 싶지 않습니다. 실제로 greasemonkey 스크립트를 만들려고합니다. href = "javascript : f()"링크를 중간 클릭하면 새 탭에 'javascript : f()'라는 URL이 생깁니다. – SimonNN

+0

방금 ​​f() 함수에서도 사용해 보았습니다. 그래서 이것을 시도하고 그것이 작동하는지 확인하십시오 : Link Here f = function() {window.open ('url'); } – LordZardeck

+0

내가 설명한 링크를 중간 클릭하면 url이 javascript : f() 인 새 탭이 열립니다. – SimonNN

0

다른 브라우저는 다를 수 있지만 기본적으로 파이어 폭스 아무튼

여기 JQuery와의 이벤트 처리 및 이벤트 살인자 웹 페이지에서 중간 클릭을했는지 (숨겨진 환경 설정을 설정하여 기능을 사용 가능하게 설정하지 않은 경우). 대신 focus 및/또는 mouseover 이벤트를 기반으로 해결 방법을 만들 수 있습니다.

+0

Firefox를 사용하면 중간 클릭의 사용자 경험을 깨지 않고 링크를로드하기 전에 자바 스크립트 코드를 실행할 수 없다는 뜻입니까? 숨겨진 환경 설정은 무엇입니까? 내가 귀하의 아이디어를 오해하지 않는 한, 마우스 오버 또는 초점은 내가 원하는 바가 아닙니다. – SimonNN

+0

Firefox에서 사용자가 실제로 링크를 중간 클릭했음을 알리는 방법은 없습니다. 내 이해는 당신이 코드를 링크 주소를 만들 필요했다. 대신 mouseover 또는 focus 이벤트를 사용하여 해당 코드를 실행 해 볼 수 있다고 생각했습니다. – Neil