我尝试将其作为书签,但没有任何反应:
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)
我想这样做,因为我只使用网络邮件,而不是邮件客户端。 我的目标是能够从网页复制文本,然后打开一个雅虎邮件窗口,单击“撰写”并粘贴我复制的对象。我正在尝试制作一个书签,打开雅虎邮件,然后点击撰写。然后我可以自己手动填写目的地地址。我的语法在哪里?
附录:这也作为书签失败:
的javascript:(函数(){$( “BTN-撰写”)点击()})();
控制台窗口也没有显示任何错误。 但是这可以在控制台窗口中使用
$( “BTN-撰写”)。单击()
答案 0 :(得分:1)
除非字段的id是“.Compose”(它不是),否则此代码将不起作用。
尝试:document.getElementById('Compose')
。
答案 1 :(得分:1)
我刚刚接收了我的Yahoo邮件并在JS控制台中执行了此操作:
$(".btn-compose").click()
它加载了撰写窗口。
似乎雅虎邮件已经使用了jQuery库,因此您可以使用类名“btn-compose”获取所有元素,并使用上面的代码触发“click”事件。
如果你想避免使用jQuery,这也有效:
document.getElementsByClassName('btn-compose')[0].click()
getElementsByClassName
返回一个列表,因此[0]
获取第一个元素。
答案 2 :(得分:0)
好吧,为了让jQuery在Tomlet代码中指示的书签中工作,我必须首先在书签中加载查询。我发现这个站点生成了必要的代码:
http://benalman.com/code/test/jquery-run-code-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-less的知识。