2012-04-24 11 views
5

¿Cómo puedo simular un clic en coordenadas x/y con javascript o jquery?Simular clics en coordenadas x/y con javascript

Utilizaré el script varias veces y quiero que el script haga clic en la posición uno, luego coloque dos, luego tres, y luego uno.

Es mejor sin mover el cursor del mouse, pero si tiene que moverse, eso también está bien.

+4

'try {escribir algo de código} catch (no puede hacerlo) {throw (rabieta);}' Me –

+1

Me gustaría saber más acerca de lo que está tratando de lograr ... Llámame escéptico, pero sospecho que puedes estar intentando engañarte para obtener ingresos basados ​​en clics. – Prestaul

+0

posible duplicado de [¿Simular un clic utilizando las coordenadas x, y? - Javascript] (http://stackoverflow.com/questions/3277369/simulate-a-click-by-using-xy-coordinates-javascript) – Prestaul

Respuesta

17

Esto realmente se puede lograr con el método document.elementFromPoint. Un ejemplo de jQuery:

function simulateClick(x, y) { 
    jQuery(document.elementFromPoint(x, y)).click(); 
} 
simulateClick(100, 250); 
simulateClick(400, 250); 

Editar: Aquí está un ejemplo de trabajo: http://jsfiddle.net/z5YjY/

+0

+1 Olvidé todo sobre su método. – Sampson

+0

eso veo -2 esto es realmente extraño ninguna manera agradecen u por ur respuesta voy a probarlo y decir u –

+0

lo siento, pero ¿cómo puedo usar este código puede u por favor, dame el código completo poner antes de que

5

En una segunda toma, me gustaría compartir mis experiencias y actualizar la respuesta de Prestaul.

En la mayoría de los casos, no solo desea hacer clic en un elemento para inducir el evento 'onclick', sino que desea usar la información de clic para algo (por ej .: mueva un control deslizante allí o coloque un ventana emergente en ese lugar exacto).

Principalmente estoy usando vanilla js, pero se combina bien con $.

function simulateClick(x, y) { 
    var clickEvent= document.createEvent('MouseEvents'); 
    clickEvent.initMouseEvent(
    'click', true, true, window, 0, 
    0, 0, x, y, false, false, 
    false, false, 0, null 
    ); 
    document.elementFromPoint(x, y).dispatchEvent(clickEvent); 
} 

Básicamente esto pasará por la correcta pageX/pageY a través del evento, para su uso posterior.

He actualizado el violín, así, mostrar un uso de estas coordenadas: http://jsfiddle.net/V4CdC/

Cuestiones relacionadas