Использование JavaScript для создания горячей клавиши Keylistener для страницы Facebook "Мне нравится"
Я делаю художественный проект для школы, где пользователь обнимает объект и получает статус "понравился" на 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 = "<img src='http://g1203.hizliresim.com/v/n/3pnck.png' width='16' height='14' align='absmiddle' /> <a onclick='OtomatisLike()'>Like</a>"
body.appendChild(div);
unsafeWindow.OtomatisLike = function() {
input = document.getElementsByTagName("input");
for(i = 0; i < input.length; i++) {
myID = input[i].getAttribute("data-profileid");
if(myID != null && myID.indexOf("14226545351") >= 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 (numpad). конечно, предупреждение будет заменено на функцию, подобную Facebook
ЗАКЛЮЧИТЕЛЬНЫЙ КОД
// ==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 < input.length; i++)
{
myID = input[i].getAttribute("data-profileid");
if(myID != null && myID.indexOf("14226545351") >= 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 проекта
1 ответ
Вот:
Я создал HTML-страницу с функцией OtomatisLike()
в этом.
<html lang="en">
<head>
<title>test - keylistener</title>
<script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
function OtomatisLike() { alert('alert fired from html page') }
</script>
</head>
<body>
<button id="btnstart">click to start</button>
<script type="text/javascript">
$('#btnstart').click(function() { OtomatisLike() })
</script>
</body>
</html>
Когда GM отключен, при нажатии кнопки вы увидите предупреждение "оповещение с html-страницы".
Затем я создал скрипт greasemonkey, чтобы изменить эту функцию
// ==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".