Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript代码到";点击";雅虎邮件中的撰写按钮?_Javascript_Email_Dom - Fatal编程技术网

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版本。