Javascript代码到";点击";雅虎邮件中的撰写按钮?
我尝试将此作为书签,但什么也没发生:Javascript代码到";点击";雅虎邮件中的撰写按钮?,javascript,email,dom,Javascript,Email,Dom,我尝试将此作为书签,但什么也没发生: javascript:(function(){window.document.getElementById(".Compose").click();}) 错误吊唁表明: [Error] TypeError: 'null' is not an object (evaluating 'window.document.getElementById(".Compose").click') (anonymous function) (launch, line
javascript:(function(){window.document.getElementById(".Compose").click();})
错误吊唁表明:
[Error] TypeError: 'null' is not an object (evaluating 'window.document.getElementById(".Compose").click')
(anonymous function) (launch, line 1)
我想这样做是因为我只使用webmail,而不是邮件客户端。
我的目标是能够从网页复制文本,然后打开雅虎邮件窗口,单击“撰写”并粘贴到我复制的对象中。我正在尝试制作一个书签,它将打开yahoo mail并为我单击“撰写”。然后我可以自己手动填写目标地址。我的语法在哪里
附录:这也不能作为bookmarklet使用:
javascript:(函数(){$(“.btn compose”).click()}()
控制台窗口也不显示任何错误。
但是,这在控制台窗口中起作用
$(“.btn compose”)。单击()除非字段的id为“.compose”(不是),否则此代码将无法工作
试试:
document.getElementById('Compose')
我刚刚在我的Yahoo邮件中,在JS控制台中完成了以下操作:
$(".btn-compose").click()
它加载了“撰写”窗口
jQuery库似乎已经被Yahoo mail使用,因此您可以获取类名为“btn compose”的所有元素,并使用上面的代码触发“click”事件
如果要避免使用jQuery,这也可以:
document.getElementsByClassName('btn-compose')[0].click()
getElementsByClassName
返回一个列表,因此[0]
获取第一个元素。好吧,要让jQuery在Tom的代码指示的bookmarklet中工作,我必须首先在bookmarklet中加载查询。我发现这个网站生成了必要的代码:
把它也揉成书签
控制台中工作的单条管线充气至:
javascript:(function(e,a,g,h,f,c,b,d)%7Bif(!(f=e.jQuery)%7C%7Cg%3Ef.fn.jquery%7C%7Ch(f))%7Bc=a.createElement(%22script%22);c.type=%22text/javascript%22;c.src=%22http://ajax.googleapis.com/ajax/libs/jquery/%22+g+%22/jquery.min.js%22;c.onload=c.onreadystatechange=function()%7Bif(!b&&(!(d=this.readyState)%7C%7Cd==%22loaded%22%7C%7Cd==%22complete%22))%7Bh((f=e.jQuery).noConflict(1),b=1);f(c).remove()%7D%7D;a.documentElement.childNodes%5B0%5D.appendChild(c)%7D%7D)(window,document,%221.3.2%22,function($,L)%7Bjavascript:(function()%7B$(%22.btn-compose%22).click()%7D)();%7D);
可美化为:
javascript: (function(e, a, g, h, f, c, b, d) {
if (!(f = e.jQuery) || g > f.fn.jquery || h(f)) {
c = a.createElement("script");
c.type = "text/javascript";
c.src = "http://ajax.googleapis.com/ajax/libs/jquery/" + g + "/jquery.min.js";
c.onload = c.onreadystatechange = function() {
if (!b && (!(d = this.readyState) || d == "loaded" || d == "complete")) {
h((f = e.jQuery).noConflict(1), b = 1);
f(c).remove()
}
};
a.documentElement.childNodes[0].appendChild(c)
}
})(window, document, "1.3.2", function($, L) {
javascript: (function() {
$(".btn-compose").click()
})();
});
我希望我能少用jQuery编写它。是的,它在控制台窗口中工作,但由于某些原因它不能作为书签JavaScript:(function(){$(“.btn compose”).click()();失败。控制台窗口也没有显示任何错误。这也失败了………javascript:(函数(){document.getElementByClassName(“btn compose”)。单击();})这也失败了…….javascript:(函数(){$(“.btn compose”)。单击())。。。。。。。。控制台为静音。在控制台中出现此错误<黎族=“组合hasmultimsg主属性btn”id=“组合”数据fid=“撰写”角色=“演示文稿”>…李>看不到整个消息。你能粘贴它吗?通过使用btn compose解决了…很抱歉,我无法重现错误-我经过了太多的迭代,导致错误的准确输入使我无法理解。我在答案中添加了一个本地JS版本。