Javascript 使用';输入';钥匙(Greasemonkey)

Javascript 使用';输入';钥匙(Greasemonkey),javascript,twitter,textarea,greasemonkey,Javascript,Twitter,Textarea,Greasemonkey,我正在尝试创建一个Greasemonkey脚本,当用户点击“回车”键时,它可以提交一条推文。我已经在一个简单的HTML页面上很好地实现了这一点(在这个网站上的一些优秀技巧的帮助下)。但是,当我尝试在我的twitter页面上使用该代码时,只有在当前未编写推文的情况下才会触发警报 document.onkeyup = function(event){ var keyCode; if (window.event) // IE/Safari/Ch

我正在尝试创建一个Greasemonkey脚本,当用户点击“回车”键时,它可以提交一条推文。我已经在一个简单的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");
    }
}   
我的下一个想法是测试一个更具体的按键事件。因此,我尝试在新的tweet文本区域中测试一个关键事件:

document.getElementsByClassName("twitter-anywhere-tweet-box-editor")[0].onkeyup = function(event)
……但这件事似乎从未发生过。我还尝试通过标签抓取元素:

document.getElementsByTagName("textarea")[0].onkeyup = function(event)
…但也不能在那里掷骰子。我想知道这是否与新tweet窗口不是从get go at window.onload()加载有关。想法?

多亏了你,我才得到它。我还发布了完整的Greasemonkey脚本


你能发布你的完整的GM脚本吗?
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  
        }
    }           
}