Arquivo anexado 'gmailbottompostinginrepl.user.js'
Download 1 // ==UserScript==
2 // @name Gmail bottom posting in replies
3 // @namespace http://henrik.nyh.se
4 // @description Inserts the caret _after_ the quoted text when replying to mails using Gmail. Does not work with HTML (rich text) mails.
5 // @include https://mail.google.tld/mail/*
6 // @include http://mail.google.tld/mail/*
7 // @include https://mail.google.tld/a/*
8 // @include http://mail.google.tld/a/*
9 // ==/UserScript==
10
11 document.addEventListener('focus',function(event) {
12
13 // Bail if the focused element is not a reply form
14 if (!event.target.id || !event.target.id.match(/^ta_\d+$/)) return;
15
16 var textarea = event.target, body = textarea.value;
17
18 // Bail if contents don't match the default top-posting (e.g. if we modified it already)
19 if (!body.match(/^\n\n\w.*?:\n>/)) return; // Matches e.g. "\n\nOn 1/2/3, Foo wrote:\n>"
20
21 body = body.replace(/^\n\n/, ''); // Strip initial line breaks
22 textarea.value = body;
23
24 var signatureBegins = body.lastIndexOf("\n-- \n");
25 var endOfContent = caretPosition = (signatureBegins == -1 ? body.length : signatureBegins);
26
27 if (signatureBegins != -1) { // There is a signature
28 endOfContent -= 2;
29 textarea.value = body.substring(0, endOfContent) + "\n" + body.substring(endOfContent); // Add line break before signature
30 } else { // There is no signature
31 textarea.value += "\n"; // Add line break to end
32 }
33
34 textarea.scrollTop = textarea.scrollHeight; // Scroll to bottom
35 setTimeout(function() { // A tiny timeout is necessary, or the caret won't move
36 textarea.setSelectionRange(caretPosition, caretPosition); // Place caret at end
37 }, 1);
38
39 }, true);
Arquivos Anexados
Para se referir aos anexos de uma página, use attachment:filename, como mostrado abaixo na lista de arquivos. NÃO use a URL do link [get], já que a mesma está sujeita a alterações, e pode facilmente se tonar inválida.Você não tem permissão para anexar arquivos a esta página.