Code: Select all
gBrowser.duplicateInWindow(gBrowser.mCurrentTab, true);
Cannot find documentation on duplicateInWindow. Would it require some kind of loop?
Code: Select all
gBrowser.duplicateInWindow(gBrowser.mCurrentTab, true);
Tryventainais wrote:The code copies all the mail content, but I need it to copy the last reply.
Code: Select all
var messageId = gFolderDisplay.selectedMessage.messageId;
var replyMessage = null;
var allFolders = MailServices.accounts.allFolders.enumerate();
var folders = [];
while(allFolders.hasMoreElements()) {
var folder = allFolders.getNext().QueryInterface(Components.interfaces.nsIMsgFolder);
if(!folder.canFileMessages)
continue;
var messages = folder.messages;
while(messages.hasMoreElements()) {
var message = messages.getNext().QueryInterface(Components.interfaces.nsIMsgDBHdr);
if(message.numReferences > 0 && message.getStringReference(message.numReferences-1) == messageId) {
if(!replyMessage || message.date > replyMessage.date)
replyMessage = message;
}
}
}
if(replyMessage) {
MsgHdrToMimeMessage(replyMessage, null, function (aMsgHdr, aMimeMessage) {
Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper)
.copyString([
(aMsgHdr.flags & Components.interfaces.nsMsgMessageFlags.HasRe ? "Re: " : "") + aMsgHdr.mime2DecodedSubject,
new Date(aMsgHdr.dateInSeconds * 1000),
aMsgHdr.mime2DecodedAuthor,
aMsgHdr.mime2DecodedRecipients,
"",
aMimeMessage.coerceBodyToPlaintext(gFolderDisplay.displayedFolder).replace(/^\s+/,"").replace(/\s+$/g,"").replace(/\n/g,"\r\n")
].join("\r\n"));
alert("Reply copied");
}, true);
} else {
alert("No reply found");
}
Try Adding a new key containingraindog wrote:Please, am I missing something, or how to add a keyboard combo (something like Alt-1 on Windows and Option-1 on Mac) to open a bookmark from a bookmarks' toolbar?
Code: Select all
var position = 1;
var nodes = document.getElementById("PlacesToolbarItems").children;
if(nodes[position-1].childElementCount) {
nodes[position-1].open = true;
} else {
nodes[position-1].click();
}
Trysashabe wrote:Hello everybody! I'm trying to figure out how to move all the tabs to the right of the current one to new window.
Code: Select all
var tabs = gBrowser.getTabsToTheEndFrom(gBrowser.selectedTab);
if(!tabs.length) return;
gBrowser.replaceTabWithWindow(tabs.shift()).addEventListener("load", function tempFunction(event) {
this.removeEventListener("load", tempFunction, true);
for(var tab of tabs) {
var newTab = this.gBrowser.addTab("about:blank", {skipAnimation: true});
newTab.linkedBrowser.stop();
newTab.linkedBrowser.docShell;
this.gBrowser.swapBrowsersAndCloseOther(newTab, tab);
}
}, true);
The author of Keyfixer is aware, and the keyfixer github homepage contains (possibly incomplete) changes for Firefox 29.saganama wrote:I have been a longtime Keyfixer user but since I updated to Firefox 29.0.1, it is not working. I use it only while composing email (Yahoo primarily) to make the Home and End keys take me to the beginning and end of the line. Now it's taking me to the top and bottom of the email. So it looks like it's not working as it always has.
What do I need to do to make it work again? THANKS!!
--Dana
dorando wrote:The author of Keyfixer is aware, and the keyfixer github homepage contains (possibly incomplete) changes for Firefox 29.
You could try to build a new .xpi or modify Profile/extensions/keyfixer@mavaball.net.xpi (.xpi/.jar is the same as .zip) while the application is closed and replace the install.rdf and chrome.manifest files, and add platformHTMLBindings_new_29.xml to chrome/keyfixer.jar/content/ .
Code: Select all
gSyncUI.doSync(event);
Trydorando wrote:ventainais wrote:The code copies all the mail content, but I need it to copy the last reply.
Code: Select all
var messageId = gFolderDisplay.selectedMessage.messageId;
var replyMessage = null;
var allFolders = MailServices.accounts.allFolders.enumerate();
var folders = [];
while(allFolders.hasMoreElements()) {
var folder = allFolders.getNext().QueryInterface(Components.interfaces.nsIMsgFolder);
if(!folder.canFileMessages)
continue;
var messages = folder.messages;
while(messages.hasMoreElements()) {
var message = messages.getNext().QueryInterface(Components.interfaces.nsIMsgDBHdr);
if(message.numReferences > 0 && message.getStringReference(message.numReferences-1) == messageId) {
if(!replyMessage || message.date > replyMessage.date)
replyMessage = message;
}
}
}
if(replyMessage) {
MsgHdrToMimeMessage(replyMessage, null, function (aMsgHdr, aMimeMessage) {
Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper)
.copyString([
(aMsgHdr.flags & Components.interfaces.nsMsgMessageFlags.HasRe ? "Re: " : "") + aMsgHdr.mime2DecodedSubject,
new Date(aMsgHdr.dateInSeconds * 1000),
aMsgHdr.mime2DecodedAuthor,
aMsgHdr.mime2DecodedRecipients,
"",
aMimeMessage.coerceBodyToPlaintext(gFolderDisplay.displayedFolder).replace(/^\s+/,"").replace(/\s+$/g,"").replace(/\n/g,"\r\n")
].join("\r\n"));
alert("Reply copied");
}, true);
} else {
alert("No reply found");
}
for copying the newest reply to the selected message (might take a bit).
Download the linked files, extract or open the .xpi/.jar (while Firefox is closed), replace/add the files, and save/repack the .xpi.saganama wrote:Without step-by-step instructions, building a new .xpi is out of my abilities. Are you able to provide those instructions or do you know if/when the developer will issue a new release of Keyfixer that is simply plug & play?dorando wrote:The author of Keyfixer is aware, and the keyfixer github homepage contains (possibly incomplete) changes for Firefox 29.
You could try to build a new .xpi or modify Profile/extensions/keyfixer@mavaball.net.xpi (.xpi/.jar is the same as .zip) while the application is closed and replace the install.rdf and chrome.manifest files, and add platformHTMLBindings_new_29.xml to chrome/keyfixer.jar/content/ .
Hmm, has the reply a References header (View > Message Source) or any other header identifying the main message? Also try removingventainais wrote:Thank you for the reply, but the code wont copy anything, just the message appears "No reply found", but there is a reply.
Code: Select all
if(!folder.canFileMessages)
continue;
Code: Select all
var messageId = gFolderDisplay.selectedMessage.messageId;
var messageSubject = gFolderDisplay.selectedMessage.mime2DecodedSubject;
var replyMessage = null;
var allFolders = MailServices.accounts.allFolders.enumerate();
var folders = [];
while(allFolders.hasMoreElements()) {
var folder = allFolders.getNext().QueryInterface(Components.interfaces.nsIMsgFolder);
if(!folder.canFileMessages)
continue;
var messages = folder.messages;
while(messages.hasMoreElements()) {
var message = messages.getNext().QueryInterface(Components.interfaces.nsIMsgDBHdr);
if(message.mime2DecodedSubject == messageSubject)
if(!replyMessage || message.date > replyMessage.date)
replyMessage = message;
}
}
if(replyMessage && replyMessage.messageId != messageId) {
MsgHdrToMimeMessage(replyMessage, null, function (aMsgHdr, aMimeMessage) {
Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper)
.copyString([
(aMsgHdr.flags & Components.interfaces.nsMsgMessageFlags.HasRe ? "Re: " : "") + aMsgHdr.mime2DecodedSubject,
new Date(aMsgHdr.dateInSeconds * 1000),
aMsgHdr.mime2DecodedAuthor,
aMsgHdr.mime2DecodedRecipients,
"",
aMimeMessage.coerceBodyToPlaintext(gFolderDisplay.displayedFolder).replace(/^\s+/,"").replace(/\s+$/g,"").replace(/\n/g,"\r\n")
].join("\r\n"));
alert("Reply copied");
}, true);
} else {
alert("No reply found");
}
Hmm, has the reply a References header (View > Message Source) or any other header identifying the main message? Also try removingventainais wrote:Thank you for the reply, but the code wont copy anything, just the message appears "No reply found", but there is a reply.
Code: Select all
if(!folder.canFileMessages)
continue;
Code: Select all
var messageId = gFolderDisplay.selectedMessage.messageId;
var messageSubject = gFolderDisplay.selectedMessage.mime2DecodedSubject;
var replyMessage = null;
var allFolders = MailServices.accounts.allFolders.enumerate();
var folders = [];
while(allFolders.hasMoreElements()) {
var folder = allFolders.getNext().QueryInterface(Components.interfaces.nsIMsgFolder);
if(!folder.canFileMessages)
continue;
var messages = folder.messages;
while(messages.hasMoreElements()) {
var message = messages.getNext().QueryInterface(Components.interfaces.nsIMsgDBHdr);
if(message.mime2DecodedSubject == messageSubject)
if(!replyMessage || message.date > replyMessage.date)
replyMessage = message;
}
}
if(replyMessage && replyMessage.messageId != messageId) {
MsgHdrToMimeMessage(replyMessage, null, function (aMsgHdr, aMimeMessage) {
Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper)
.copyString([
(aMsgHdr.flags & Components.interfaces.nsMsgMessageFlags.HasRe ? "Re: " : "") + aMsgHdr.mime2DecodedSubject,
new Date(aMsgHdr.dateInSeconds * 1000),
aMsgHdr.mime2DecodedAuthor,
aMsgHdr.mime2DecodedRecipients,
"",
aMimeMessage.coerceBodyToPlaintext(gFolderDisplay.displayedFolder).replace(/^\s+/,"").replace(/\s+$/g,"").replace(/\n/g,"\r\n")
].join("\r\n"));
alert("Reply copied");
}, true);
} else {
alert("No reply found");
}
Edit > Find.ventainais wrote:[…] I don't know where to find the References header in the source
dorando wrote:Edit > Find.ventainais wrote:[…] I don't know where to find the References header in the source
Code: Select all
gcliExec({
command: "screenshot",
args: {filename: " " /* FILENAME_DEFAULT_VALUE */, fullpage: true}
})