使用javascript为facebook页面“喜欢”创建keylistener热键

我正在为学校做一个艺术项目,用户拥抱一个对象并在Facebook上获得“喜欢”的状态。 一切都很有效; 但是,我需要在用户脚本中设置键盘监听器。

问题:
如何使热键执行unsafeWindow.Otomatislike函数? 如果是这样,任何人都可以告诉我如何组合这些代码。 我很确定我的语法是它失败的原因。

100% 像状态代码一样工作

body = document.body; if(body != null) { div = document.createElement("div"); div.setAttribute('id','like2'); div.style.position = "fixed"; div.style.display = "block"; div.style.width = "125px"; div.style.opacity= 0.90; div.style.bottom = "+42px"; div.style.left = "+6px"; div.style.backgroundColor = "#eceff5"; div.style.border = "1px solid #94a3c4"; div.style.padding = "2px"; div.innerHTML = "  Like" body.appendChild(div); unsafeWindow.OtomatisLike = function() { input = document.getElementsByTagName("input"); for(i = 0; i = 0) input[i].click(); } }; } 

此代码在左下角创建一个小按钮,以便在其上显示redbull页面。 即。 http://vvcap.net/db/CTHpxz8qeuuZX1yy5tEd.htp

问题我想添加一个键盘监听器而不是我设计的辅助div“按钮”。 http://vvcap.net/db/M0XbpT5Sw8BmOtfAHJ4m.htp

我发现了一些看起来很重要的示例代码; 但是,我有很多问题要弄清楚如何实现它: 热键引用

  var isCtrl = false; document.onkeyup=function(e) { if(e.which == 17) isCtrl=false; }document.onkeydown=function(e){ if(e.which == 17) isCtrl=true; if(e.which == 96 && isCtrl == true) { alert('Keyboard shortcuts are cool!'); return false; } } 

虽然这段代码具有逻辑意义,但我完全无法实现它。 17 = ctnl键而96 == numpad 0.因此热键== ctnl + 0(小键盘)。 当然警报将被替换为facebook likefunction

最终法典解答

  // ==UserScript== // @name Facebook Like By Virgan // @namespace http://userscripts.org/scripts/show/123303 // @version 0.3 // @copyright Virgan // @description Auto Like And Confirm (mass) | You can mass like and confirm // @author Virgan (http://userscripts.org/users/430638) // @icon https://lh4.googleusercontent.com/-2A1Jpr4-1qM/TxPUbMq8IQI/AAAAAAAAAIU/_50N6LEgkxE/h120/FB.png // @require http://code.jquery.com/jquery.min.js // @include http://www.facebook.com/* // @include https://www.facebook.com/* // @exclude htt*://developers.facebook.com/* // // Copyright (c) 2012, Virgan // Auto Like/Unlike, And Another Function. // ==/UserScript== // ==Profile== unsafeWindow.OtomatisLike = OtomatisLike; function OtomatisLike() { input = document.getElementsByTagName("input"); for(i = 0; i = 0) input[i].click(); } } $(window).load(function(){ var isCtrl = false; document.onkeyup=function(e) { if(e.which == 17) isCtrl=false; } document.onkeydown=function(e){ if(e.which == 17) isCtrl=true; if(e.which == 96 && isCtrl == true) { OtomatisLike() return false; } } }); 

如果您想了解有关项目pdf预设的更多信息,请感谢您的帮助

这里:
我在其中创建了一个带有OtomatisLike()函数的HTML页面。

   test - keylistener         

禁用GM后,当您单击按钮时,您将看到警报说“从html页面发出警报”。

然后我创建了一个greasemonkey脚本来改变这个function

 // ==UserScript== // @name TESTE 2 // @require http://code.jquery.com/jquery.min.js // @include file://* // ==/UserScript== function OtomatisLike() { alert('alert fired from greasemonkey') } unsafeWindow.OtomatisLike = OtomatisLike; $(window).load(function(){ var isCtrl = false; document.onkeyup=function(e) { if(e.which == 17) isCtrl=false; } document.onkeydown=function(e){ if(e.which == 17) isCtrl=true; if(e.which == 96 && isCtrl == true) { OtomatisLike() //alert('Keyboard shortcuts are cool!'); return false; } } }); 

现在启用GM后,您可以单击按钮或按ctrl 0调用函数OtomatisLike() ,该函数被脚本中的函数替换,现在将警告“来自greasemonkey的警报”。