Ich erstelle ein Skript für GMail, das erfordert, dass ich verschiedene Links auf der linken Seite wie Posteingang, Mail, Spam und Compose vervielfältige. Ich habe alle Links außer Compose arbeiten. Ich kann nicht herausfinden, was passiert, wenn ich klicke. Sie können meinen Code unten finden. Ich würde schätzen jede HilfeWie kann ich programmgesteuert in GMail mit "greymonkey" auf die Schaltfläche "verfassen" klicken?
// ==UserScript==
// @name GMC Test
// @namespace com.pavelgutin
// @description test
// @include http*://mail.google.com*
// ==/UserScript==
//loading function
function tryAgain(tries) {
setTimeout(function() { init(tries++); }, 1000*tries);
}
//gets a node by XPath
function getNodeByXPath(expression, parent) {
var r = parent.evaluate(expression, parent, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
return ((r != null) ? r.iterateNext() : null);
}
//initialize
function init(tries) {
tries = tries || 0;
if (tries > 3) return; // give up, too many tries
// Locate the canvas_frame iframe
var f = document.getElementById("canvas_frame");
if (f == null) return tryAgain(tries);
// Locate the document
var doc = f.contentWindow.document;
if (doc == null) return tryAgain(tries);
// make sure all the links are loaded
if (getNodeByXPath("//a[contains(@href,'#inbox')]", doc) == null) return tryAgain(tries);
go();
}
function go() {
function fireEvent(xPath,event)//https://developer.mozilla.org/en/DOM/element.dispatchEvent
{
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent(event, true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
var cb = getNodeByXPath(xPath, doc);
var canceled = !cb.dispatchEvent(evt);
GM_log("event canceled = " + canceled);
}
var doc = document.getElementById("canvas_frame").contentWindow.document;
//THE LINE BELOW WORKS
//setTimeout(function(){GM_log("let's click starred!");fireEvent("//a[contains(@href,'#starred')]", "click")}, 5000);
//THIS DOENS'T WORK
setTimeout(function(){GM_log("now let's click compose!");fireEvent("//div[@class='J-Zh-I J-J5-Ji L3')]", "click")}, 5000);
}
window.addEventListener('load', init, false);
ich arbeite hoffe, Sie fragen nicht Hilfe beim Erstellen eines Spam-Generators ... – PowerUser
@PowerUser: Dachte das Gleiche ... Aber Google sollte ziemlich schlau sein, um Bots zu fangen Email schicken. 2, können Sie GMAIL direkt über SMTP verwenden. Also warum würdest du das mit GreaseMonkey machen? – turtlepick
Nun, wenn alles, was Sie wissen, GreaseMonkey ist und Sie einen billigen Spambot machen wollten, ohne eine neue Sprache zu lernen, dann ist es ein Weg zu gehen (egal wie ineffizient es ist). – PowerUser