So weit ich das aus meinem sehr begrenzten Wissen über JavaScript sagen kann, kann es alle möglichen Informationen über einige Elemente auf der Seite erhalten, zum Beispiel über einen Button. JavaScript kann den Namen eines Buttons, seinen Typ, Namen und den Text darin abrufen. Es kann sogar einen Button deaktivieren. Aber kann es einen Klick auf einen Button simulieren? Oder kann das nur von einem Benutzer gemacht werden?
EDIT 1 (meine Antwort auf die unten stehende Antwort von Narxx):
Diese Methode scheint nicht zu funktionieren:
document.getElementById('my-button').click();
Wie spät ist es?
EDIT 2 (meine Antwort auf den unten stehenden Kommentar von prash)
Diese Methode funktioniert auch nicht (die simulate-Funktion wurde von kangas geschrieben, modifiziert von TweeZz und von mir von hier übernommen):
function simulate(element, eventName)
{
var options = extend(defaultOptions, arguments[2] || {});
var oEvent, eventType = null;
for (var name in eventMatchers)
{
if (eventMatchers[name].test(eventName)) { eventType = name; break; }
}
if (!eventType)
throw new SyntaxError('Nur HTMLEvents und MouseEvents-Schnittstellen werden unterstützt');
if (document.createEvent)
{
oEvent = document.createEvent(eventType);
if (eventType == 'HTMLEvents')
{
oEvent.initEvent(eventName, options.bubbles, options.cancelable);
}
else
{
oEvent.initMouseEvent(eventName, options.bubbles, options.cancelable, document.defaultView,
options.button, options.pointerX, options.pointerY, options.pointerX, options.pointerY,
options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, options.button, element);
}
element.dispatchEvent(oEvent);
}
else
{
options.clientX = options.pointerX;
options.clientY = options.pointerY;
var evt = document.createEventObject();
oEvent = extend(evt, options);
element.fireEvent('on' + eventName, oEvent);
}
return element;
}
function extend(destination, source) {
for (var property in source)
destination[property] = source[property];
return destination;
}
var eventMatchers = {
'HTMLEvents': /^(?:load|unload|abort|error|select|change|submit|reset|focus|blur|resize|scroll)$/,
'MouseEvents': /^(?:click|dblclick|mouse(?:down|up|over|move|out))$/
}
var defaultOptions = {
pointerX: 0,
pointerY: 0,
button: 0,
ctrlKey: false,
altKey: false,
shiftKey: false,
metaKey: false,
bubbles: true,
cancelable: true
}
simulate(document.getElementById("btn"), "click");
Wie spät ist es?
EDIT 3: (meine Antwort auf die unten stehende Antwort von Jonco98):
(Dieser Code ist auch die Antwort auf meine Frage)
function ClickButton()
{
document.getElementById('my-button').click();
}
Wie spät ist es?
EDIT 4:
Bitte beachten Sie, dass die unten stehende Antwort von naomik auch mein Problem perfekt löst.