Javascript 使用';输入';钥匙(Greasemonkey)
我正在尝试创建一个Greasemonkey脚本,当用户点击“回车”键时,它可以提交一条推文。我已经在一个简单的HTML页面上很好地实现了这一点(在这个网站上的一些优秀技巧的帮助下)。但是,当我尝试在我的twitter页面上使用该代码时,只有在当前未编写推文的情况下才会触发警报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
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
}
}
}