Ich kenne die document.form.button.click()
Methode. Ich würde jedoch gerne wissen, wie man das onclick
Ereignis simuliert .
Ich habe diesen Code irgendwo hier auf Stack Overflow gefunden, weiß aber nicht, wie ich ihn verwenden soll :(
function contextMenuClick()
{
var element= 'button'
var evt = element.ownerDocument.createEvent('MouseEvents');
evt.initMouseEvent('contextmenu', true, true,
element.ownerDocument.defaultView, 1, 0, 0, 0, 0, false,
false, false, false, 1, null);
element.dispatchEvent(evt);
}
Wie löse ich ein Mausklickereignis mit JavaScript aus?
javascript
dom-events
mouseclick-event
Nok Imchen
quelle
quelle
Antworten:
(Geänderte Version, damit es ohne prototype.js funktioniert)
Sie können es so verwenden:
Beachten Sie, dass Sie als dritten Parameter 'Optionen' übergeben können. Die Optionen, die Sie nicht angeben, stammen aus den defaultOptions (siehe unten im Skript). Wenn Sie beispielsweise Mauskoordinaten angeben möchten, können Sie Folgendes tun:
Sie können einen ähnlichen Ansatz verwenden, um andere Standardoptionen zu überschreiben.
Credits sollten an Kangax gehen . Hier ist die Originalquelle (prototype.js spezifisch).
quelle
Hier ist eine reine JavaScript-Funktion, die einen Klick (oder ein beliebiges Mausereignis) auf ein Zielelement simuliert:
Hier ist ein funktionierendes Beispiel: http://www.spookandpuff.com/examples/clickSimulation.html
Sie können einen Klick auf ein beliebiges Element im DOM simulieren . So etwas
simulatedClick(document.getElementById('yourButtonId'))
würde funktionieren.Sie können ein Objekt übergeben
options
, um die Standardeinstellungen zu überschreiben (um zu simulieren, welche Maustaste Sie möchten, ob Shift/ Alt/ Ctrlgehalten werden usw. Die akzeptierten Optionen basieren auf der MouseEvents-API .Ich habe in Firefox, Safari und Chrome getestet. Internet Explorer muss möglicherweise speziell behandelt werden, da bin ich mir nicht sicher.
quelle
type: options.click || 'click'
sollte es wohl seintype: options.type || 'click'
.<div id = "outer"><div id = "inner"></div></div> simulatedClick(document.getElementById('outer'));
klickt nicht auf das innere Element.div
enthält eine Schaltfläche oder einen Link - Sie möchten nicht, dass ein Klick auf das Äußere einen Klick auf das innere Element auslöst.||
Operator in solchen Fällen nicht, denn whoops wirdcanBubble:options.canBubble || true,
jetzt immer als wahr ausgewertet, und anscheinend wird es 5 Jahre lang niemand bemerken.Eine einfachere und standardisiertere Methode zum Simulieren eines Mausklicks wäre die direkte Verwendung des Ereigniskonstruktors zum Erstellen und Versenden eines Ereignisses.
Demo: http://jsfiddle.net/DerekL/932wyok6/
Dies funktioniert in allen modernen Browsern. Für alte Browser einschließlich IE
MouseEvent.initMouseEvent
muss leider verwendet werden, obwohl es veraltet ist.quelle
In der Dokumentation zum Mozilla Developer Network (MDN) finden Sie HTMLElement.click () . Weitere Veranstaltungen finden Sie hier .
quelle
Basierend auf Dereks Antwort habe ich das überprüft
funktioniert wie erwartet auch mit Schlüsselmodifikatoren. Und dies ist keine veraltete API, soweit ich sehen kann. Sie können dies auch auf dieser Seite überprüfen .
quelle
Sie können elementFromPoint verwenden :
wird in allen Browsern unterstützt: https://caniuse.com/#feat=element-from-point
quelle
JavaScript-Code
HTML Quelltext
quelle