我正在尝试创建一个Greasemonkey脚本,当用户点击“enter”键时,该脚本可以提交推文。我已经在一个简单的HTML页面上得到了这个工作(借助本网站上的一些优秀提示)。但是,当我尝试在我的Twitter页面上使用代码时,如果当前没有创作推文,则仅会触发警报。
document.onkeyup = function(event){
var keyCode;
if (window.event) // IE/Safari/Chrome/Firefox(?)
{
keyCode = event.keyCode;
}
else if (event.which) // Netscape/Firefox/Opera
{
keyCode = event.which;
}
if (keyCode == 13){
alert("Enter pressed");
}
}
我的下一个想法是测试更具体的按键事件。所以我尝试在新推文textarea中测试一个关键事件:
document.getElementsByClassName("twitter-anywhere-tweet-box-editor")[0].onkeyup = function(event)
......但是这个事件似乎永远不会发生。我也尝试按标签抓取元素:
document.getElementsByTagName("textarea")[0].onkeyup = function(event)
......但也没有骰子。我想知道这是否与新的推文窗口没有从window.onload()的get-go加载这一事实有关。想法?
答案 0 :(得分:0)
感谢this post。我还发布了完整的Greasemonkey脚本here。
setInterval (function() { checkForTweetbox (); }, 500);
function checkForTweetbox () {
var tweetbox = document.querySelector ('div.tweet-box textarea'); //check for new tweet window
if (tweetbox) {
if (! tweetbox.weHaveProcessed) {
tweetbox.weHaveProcessed = true;
// alert ('New tweet-box found!');
}
}
tweetbox.onkeydown = function(event){
if(event.keyCode == 13){ //13 = Enter keycode
document.querySelector ('a.primary-btn').click(); //there must be at least one character in the textarea
}
}
}