19.11.2017, 14:04
|
|
Новичок на форуме
|
|
Регистрация: 19.11.2017
Сообщений: 7
|
|
Расширение для Google Crome
Добрый день ув. форумчане. Подскажите пример скрипта который будет брать на сайте определенный div и заменять его контент на свой.
|
|
20.11.2017, 03:02
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,590
|
|
Вот минимальное расширение: Пример: manifest.json
{
"name": "Test",
"version": "1.0",
"manifest_version": 2,
"description": "Test",
"content_scripts": [
{
"matches": ["*://*.google.ru/*"],
"js": ["content.js"]
}
]
}
Пример: content.js
document.querySelector('body') //меняем селектор на нужный
.innerHTML = 'Hello google!';
его уже можно загрузить в режиме разработчика и сходить на google.ru, посмотреть на результат.
__________________
29375, 35
Последний раз редактировалось Aetae, 14.12.2017 в 22:33.
|
|
22.11.2017, 17:39
|
|
Новичок на форуме
|
|
Регистрация: 19.11.2017
Сообщений: 7
|
|
Подскажите урок или пример загрузки данных с БД или сайта?
Т.е.:
.innerHTML = 'Hello google!'; Где Hello google берется с базы данных, или сайта.
Последний раз редактировалось ChezzyChezz, 22.11.2017 в 18:41.
|
|
23.11.2017, 01:09
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,590
|
|
Пример: manifest.json
{
"name": "Test",
"version": "1.0",
"manifest_version": 2,
"description": "Test",
"content_scripts": [
{
"matches": ["*://*.google.ru/*"],
"js": ["content.js"]
}
],
"background": {
"scripts": ["background.js"]
},
"permissions": [
"https://www.deviantart.com/"
]
}
Пример: content.js
chrome.runtime.sendMessage( 'get art', // отравляем запрос в фоновый процесс
html => document.querySelector('body').innerHTML = html
);
Пример: background.js
chrome.runtime.onMessage.addListener(
(message, sender, sendResponse) => fetch('https://www.deviantart.com/') // запрашиваем сайт
.then( response => response.text() )
.then( sendResponse ) // отравляем результат обратно на вкладку
&& true // !возвращаем true, чтобы вкладка дождалась ответа
)
__________________
29375, 35
Последний раз редактировалось Aetae, 23.11.2017 в 01:12.
|
|
25.11.2017, 10:57
|
Новичок на форуме
|
|
Регистрация: 24.11.2017
Сообщений: 1
|
|
Блокатор звука
Всем привет! Не подскажет ли кто?
Понадобилось расширение, которое блокирует звук на определенных сайтах. Типа заходишь на яндекс.музыку, нажимаешь воспроизвести... судя по сайту она вроде бы идет, но ты ее не слышишь, потому что из-за расширения до браузера не доходит. В этом и заключается вся задача.
Само-то расширение, я, конечно, сделал, вот только javascriptа, который просто блокировал бы звук, нигде нет. Вернее есть, но только если ты разработчик сайта, а не расширений.
Не встречался ли вам такой скрипт?
Заранее спасибо.
P. S. : Я понимаю, что проще скачать расширение где-то и все. Но мне нужно его скрыть от жены, поэтому делаю сам, а то догадается, выключит и будет ночью музыкой спать мешать.
|
|
02.01.2018, 13:19
|
|
Новичок на форуме
|
|
Регистрация: 19.11.2017
Сообщений: 7
|
|
Я беру 2 блока с сайта, и хочу заменить их. Есть вот такой код:
var elements = document.querySelectorAll('div .black, div .yellow');
for (var i = 0; i < elements.length; i++) elements[i].innerHTML = 'text';
Мне надо:
- Для каждого блока разный контент, в моем случает text в обоих div
- Значение брать с сайта site.ru/bd.php, где .black - textblack, изменил - сохранил и оно в расширении появилось)
|
|
02.01.2018, 13:38
|
|
Новичок на форуме
|
|
Регистрация: 19.11.2017
Сообщений: 7
|
|
Сообщение от Aetae
|
Пример: manifest.json
{
"name": "Test",
"version": "1.0",
"manifest_version": 2,
"description": "Test",
"content_scripts": [
{
"matches": ["*://*.google.ru/*"],
"js": ["content.js"]
}
],
"background": {
"scripts": ["background.js"]
},
"permissions": [
"https://www.deviantart.com/"
]
}
Пример: content.js
chrome.runtime.sendMessage( 'get art', // отравляем запрос в фоновый процесс
html => document.querySelector('body').innerHTML = html
);
Пример: background.js
chrome.runtime.onMessage.addListener(
(message, sender, sendResponse) => fetch('https://www.deviantart.com/') // запрашиваем сайт
.then( response => response.text() )
.then( sendResponse ) // отравляем результат обратно на вкладку
&& true // !возвращаем true, чтобы вкладка дождалась ответа
)
|
если я заменяю всю страницу - заменяет, если я пытаюсь заменить только один div <div class="session-chat">
chrome.runtime.sendMessage( 'get art', // отравляем запрос в фоновый процесс
html => document.querySelector('session-chat').innerHTML = html
);
У меня ошибка:
Error in event handler for (unknown): TypeError: Cannot set property 'innerHTML' of null
at chrome.runtime.sendMessage.html (chrome-extension://fcipomdjmklgjgjnlcjoeagkolklgfgm/content.js:2:62)
|
|
02.01.2018, 22:23
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,590
|
|
Английским языком вам написано:
TypeError: Cannot set property 'innerHTML' of null
ТипаОшибка: немогу покласть свойство нутрянойХтмл в нуль
Т.е. нет такого элемента на странице.
"session-chat" всё-таки не имя элемента, а класс и потому должен быть указан соответствующим образом('.session-chat').
__________________
29375, 35
Последний раз редактировалось Aetae, 02.01.2018 в 22:27.
|
|
|
|