2011-02-11 7 views
2

내 페이지에 앵커 태그가 있습니다. 나는 클릭 이벤트 onload를 트리거하고 싶다. 즉, 새 탭으로이 페이지 "http://XXXXX.com"을 열고 싶습니다. 차단기를 팝업하고 싶지 않기 때문에. 이 작업을 수행 할 여지가 있습니까?클릭 이벤트 onload를 트리거 할 수 있습니까

앵커 attrs에 당신이 easily.well ... 이전에 게시 된 솔루션은 또한 일한 할 수있는 jQuery를 사용하여 페이지로드

document.getElementById('add_redirect').click(); 
+3

팝업 차단기를 우회하려고하지 마십시오. – BoltClock

답변

2

당신의 목표는 아마 작동하지 않습니다 종합적 click 이벤트를 트리거, 페이지로드에서 팝업 차단을 우회하는 경우

$(document).ready(function(){ 
$("#add_redirect").trigger('click'); 
}); 
. 브라우저는 DOM 요소에서 click이 (사용자가 생성 한) 대 click 함수를 호출 한 시점을 알기에 충분히 똑똑합니다 (브라우저가 작동하는 경우에도 해당). 예 : http://jsbin.com/avibi3/3, http://jsbin.com/avibi3/4

정말 전혀 click 이벤트를 트리거하지 않기 때문에, 그것을하지 않습니다 확실히 jQuery의 trigger 메커니즘을 사용하여; (: 분명히하고,   —이 Sukhi의 대답 addEventListener를 통해 연결   —이 아닌 사람을 참조 onclick 속성을 통해 정의 된 것들 편집) 그냥 jQuery를이 을 엮은 핸들러를 발생합니다. Sukhi의 답변을 통해, 비록 내가 항상 말하고 있지만 : 코드가 두 개의 다른 장소에서 실행되기를 원한다면, 함수에 넣고 그 함수를 두 개의 다른 장소에서 호출하는 것이 좋습니다. click 핸들러에서 코드를 실행하기 위해 클릭을 시뮬레이트). trigger (주로 타사 스크립트와의 통합과 관련이 있음)에 대한 올바른 사용 사례가 있지만 자신의 코드를 두 곳의 다른 곳에서 실행하는 경우 디자인 문제가 발생합니다.

2

시도 노호 주어진다 .

TRY DEMO

+0

죄송합니다 .. 이것은 모두 자바 스크립트입니다. –

3

에 아래의 코드를 추가

id="add_redirect" 
href="http://XXXXX.com" 
target="_blank" 
+0

처리기가 jQuery에 연결되어있는 경우에만 ** click 처리기 **를 트리거합니다. 어느 것이 좋습니다, 당신이 jQuery를 사용한다면, 당신은 이벤트 핸들러를 연결하기 위해 그것을 사용하고 싶습니다, 그러나 예를 들어 마크 업에서'onclick = ... '은 트리거되지 않을 것입니다. 외침할만한 가치가 있습니다. –

+1

흥미롭게도, 일반화에 대한 나의 실수. 그것은 DOM2 메소드 ('addEventListener')를 통해 부착 된 화재 핸들러입니다 : http://jsbin.com/avibi3 나는'onclick = "을 발생시키지 않을 것이라는 가정하에 실수를했습니다. . "마크 업에서. 그러나 명백하게 그것은한다. 어쨌든 DOM2는 중요한주의 사항입니다. Chrome의 팝업 차단기는 어떤 경우에도 속지 않습니다. http://jsbin.com/avibi3/3, http://jsbin.com/avibi3/4 –

5

그래 당신이 이벤트에 onLoad를 클릭하여 사용할 수 있습니다 ... 단지에서는 setTimeout() 그것을 클릭하지 않고 기능을 클릭 호출 JQuery와의 방법을 사용하여 ... 여기이 때 페이지 당신을 위해 작동합니다 예를

$("document").ready(function() { 
    setTimeout(function() { 
     $("#add_redirect").trigger('click'); 
    },10); 

입니다 로드 및 시간 지연은 무시할 수있는 10ms입니다 ...

+0

setTimeout을 사용하면 클릭 동작이 트리거되는 것처럼 보입니다. 내 의견에 가장 좋은 대답. – SlickRemix

+0

당신을 위해 일해 주어서 기뻐 @Operator. – Shwet

관련 문제