Есть множество вопросов по SO, которые спрашивают:
Еще одна проблема с списком, разделенным запятыми, - обеспечить согласованность значений - сохранение текста означает возможность опечаток ...
Это все симптомы денормализованных данных и подчеркивают, почему вы всегда должны моделировать нормализованные данные. Денормализация может быть оптимизацией запроса, , которая будет применяться, когда сама на самом деле представится .
Вы можете отправить событие click , хотя это не то же самое, что реальный щелчок. Например, он не может использоваться, чтобы обмануть междоменный iframe-документ, если подумать, что он был нажат.
Все современные браузеры поддерживают document.elementFromPoint
и HTMLElement.prototype.click()
, поскольку по крайней мере IE 6, Firefox 5 , любую версию Chrome и, возможно, любую версию Safari, о которой вы, вероятно, захотите. Он будет даже следовать ссылкам и отправлять формы:
document.elementFromPoint(x, y).click();
https://developer.mozilla.org/En/DOM:document.elementFromPoint https: // developer.mozilla.org/en-US/docs/Web/API/HTMLElement/click
Это только ответ torazaburo , обновленный для использования объекта MouseEvent.
function click(x, y)
{
var ev = new MouseEvent('click', {
'view': window,
'bubbles': true,
'cancelable': true,
'screenX': x,
'screenY': y
});
var el = document.elementFromPoint(x, y);
el.dispatchEvent(ev);
}
Из соображений безопасности вы не можете переместить указатель мыши с помощью javascript и не имитировать клик с ним.
Что вы пытаетесь выполнить?
Да, вы можете имитировать щелчок мышью, создавая событие и отправляя его:
function click(x,y){
var ev = document.createEvent("MouseEvent");
var el = document.elementFromPoint(x,y);
ev.initMouseEvent(
"click",
true /* bubble */, true /* cancelable */,
window, null,
x, y, 0, 0, /* coordinates */
false, false, false, false, /* modifier keys */
0 /*left*/, null
);
el.dispatchEvent(ev);
}
Остерегайтесь использования метода click
для элемента - он широко внедрен, но не является стандартным и не удастся, например, PhantomJS. Я предполагаю, что реализация jQuery .click()
делает правильную вещь, но не подтверждена.
initMouseEvent
устарел: developer.mozilla.org/en-US/docs/Web/API/MouseEvent/…
– vikeri
14 April 2015 в 13:35