Мониторинг ссылок ВКонтакте из расширения для Google Chrome
Ожидает приглашения
Здравствуй, %username%!
При серфинге ВКонтакте, постоянно переходя по ссылкам (открывая в новой вкладке) внутри самой соц. сети. У меня всегда возникали проблемы с ссылками, которые были привязаны к безопасному протоколу, как же я сидел через небезопасный протокол. Как то мне это всё надоело, и я решил написать собственное расширение и заодно разобраться в Google Chrome API. Прочитав пару статей на Хабре и разобравшись в принципе работы расширений я приступил к работе.
Что будет делать данное расширение:
- Получение протокола, активной вкладки браузера;
- Замена всех протоколов у ссылок на странице, которые отличаются от полученного протокола (активной вкладки).
Принцип написания расширений
На Хабре, есть не мало подробных статей по данной тематике, поэтому я не буду вклиниваться в суть пошагового создания расширения для Google Chrome!
Создаём файл манифеста
manifest.json
{
"manifest_version": 2,
"name": "uReplaceProtocol",
"version": "1.0",
"permissions": [
"*://vk.com/*"
],
"content_scripts": [
{
"matches": [ "*://vk.com/*" ],
"js": ["jquery.js", "uCore.js"]
}
]
}
Пишем код
- Скачиваем jquery.js с сайта jquery.com. Сохраните его в директорию Вашего проекта (не забудьте переименовать его в jquery.js);
- Создайте файл uCore.js.
uCore.js
$(function ()
{
var uProtocol = window.location.protocol.replace(/:/g, '');
var uHref = null;
var uIndexOf = (uProtocol == 'http') ? 'https://vk.com' : 'http://vk.com';
setInterval (function()
{
$('a').each(function ()
{
if (uHref = $(this).attr('href'))
{
if ((uHref.indexOf(uIndexOf) + 1) && (uHref.indexOf('login.vk.com') == -1))
{
if (uProtocol == 'http')
{
uHref = uHref.replace('https:', 'http:');
$(this).attr('href', uHref);
}
else
{
uHref = uHref.replace('http:', 'https:');
$(this).attr('href', uHref);
}
}
}
});
}, 100);
});
Вот собственно и всё. Я не JS-специалист, потому уж не пинайте.