我想将我的电子邮件从一个有点不可靠的提供商(比方说X)移到Gmail。 不幸的是,电子邮件提供商不允许文件夹导出或直接IMAP链接。
我唯一能做的就是通过POP3将Gmail连接到X,这样X的收件箱中的任何内容都会被复制到Gmail。
我已经设置了它,但它确实有效,但当然POP3只扫描收件箱。
我在收件箱以外的其他文件夹中有数千封电子邮件,因此我需要先将它们移至收件箱。但是,我只能通过X的Web GUI移动消息,这只允许每回合移动一页消息。
所以我必须打开已保存的消息文件夹,单击“全选”,选择“收件箱”并单击“移动”,然后页面将重新加载,我需要再次执行此操作...数百次。 / p>
我制作了一个Javascript函数(假设MoveToInbox())来模拟这些动作,我在Firefox中打开了页面并启动了Firefox Scratchpad。因此,我可以在Scratchpad中按住Ctrl + R,然后等待页面重新加载,然后再次按下它,这节省了大约50%的时间。
但是,我想知道,如果我能以某种方式使Scratchpad与该选项卡一起工作以便等待页面重新加载,然后执行脚本然后再次等待,从而消除所有手动重复性任务。
我以为我可以用window.addEventListener以某种方式做到这一点,但是这个对象似乎在页面重新加载时被清除了,所以我可以使用它吗?
答案 0 :(得分:0)
我自己的快速回答是只使用Firefox插件,例如GreaseMonkey。
当然,解决方案在不同情况下会有所不同,但我自己就是这个GreaseMonkey Javascript:
// the function to select all messages and programmatically click on
// move button:
function moveToInbox()
{
selectAllCheckbox=document.getElementById("messagesForm")[0];
mailboxSelector=document.getElementsByName('targetMailbox')[0];
selectAllCheckbox.click(); // click on "select all" checkbox
mailboxSelector.selectedIndex=1; //specify that we are moving to inbox
inx.mail.mailbox.mailboxTransfer(); // execute provider's function for moving mail.
}
// This gets executed on any page that matches URL specified in Greasemonkey script properties
// I have put this to execute, if the URL is for the folder I want to move messages from.
messageList=document.getElementById("messagesForm")[0];
// in my case, if there are no more messages to move, the form is not created at all, so
// I can check for its existance, to determine if I need to execute moving.
if (messageList == null)
{
return;
}
else
{
moveToInbox();
}
答案 1 :(得分:0)
第一个问题是重新加载后变量和函数会丢失:
- <iframe>
使用src = "X"
现在,跨域政策正在引发麻烦:
- 在与<iframe>
src
然后,您可以使用iframeId.contentDocument
导航至google.com,使用Inspect Element添加iframe:
<iframe src="https://www.google.ae" id="someID"> </iframe>
然后,您可以使用JavaScript对iframe执行任何操作:
someID.contentDocument.location.reload();
setTimeout('someID.contentDocument.getElementById('lst-ib').value="iframes rock"',1000); //You should use something better than setTimeout to wait for the website to load.