Мой основной браузер — Opera, для которого изначально были разработаны дополнения, а затем перенесены в Google Chromium (собран из репозитория Ubuntu).
Я пользуюсь веб-версией твиттера и меня она практически полностью устраивает, но было решено исправить несколько мелких нюансов.
Далее вы сможете увидеть, какие проблемы возникли при «портировании» расширения.
Во-первых, я хотел бы отправлять статусы с помощью CTRL + ENTER. Во-вторых, старый стиль ретвитов(RT имя пользователя текст).
var pr_key = 0;
function submit_status(event) {
alert('');
}
(function () {
try {
submit_status = function (event) {
if(pr_key == 17 && event.keyCode == 13) {
$('#status_update_form').
submit(); } pr_key = event.keyCode; } jQuery('#status').
attr('onKeyDown', 'submit_status(event);');
} catch(e) { }
})();
Первый был реализован довольно быстро с помощью JS. Использовать сторонние библиотеки мне не хотелось, поэтому делал это небольшими костылями.
В Opera все работало, а затем пришло время создать расширение для Chromium. В манифест.json добавили jQuery, добавили и сам twi JS, и начались тесты.
И тут же всплыли все проблемы, как оказалось в Chromium были проблемы с видимостью области определения функций; onKeyDown просто не увидел функцию submit_status().
Проблема решилась добавлением в код твиттера элемента скрипта.
// ==UserScript==
// @include x.com*
// @include www.x.com*
// ==/UserScript==
(function () {
jQuery('#home').
append( ''); jQuery('#status').
attr('onKeyDown', 'submit_status(event);');
})();
Выше приведен полный листинг финального сценария для Opera и Chromium. Хочу отметить еще один момент: 'setTimeout("update_retweet();", 5000);' +
Используется для вызова update_retweet, т.к.
со своего расширения его тоже не получится вызвать.
Еще есть возможность указать src для скриптов на своем (?! каком-то code.google.com) ресурсе, это тоже выход, но у меня он не сработал.
Теги: #Google Chrome #Twitter #расширения #Чулан
-
Социальный Рейтинг
19 Oct, 24 -
Очень Долгожданный Релиз Sublime Text 3.0
19 Oct, 24