Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.11.2017, 14:04
Аватар для ChezzyChezz
Новичок на форуме
Отправить личное сообщение для ChezzyChezz Посмотреть профиль Найти все сообщения от ChezzyChezz
 
Регистрация: 19.11.2017
Сообщений: 7

Расширение для Google Crome
Добрый день ув. форумчане. Подскажите пример скрипта который будет брать на сайте определенный div и заменять его контент на свой.
Ответить с цитированием
  #2 (permalink)  
Старый 20.11.2017, 03:02
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

Вот минимальное расширение:
Пример: 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.
Ответить с цитированием
  #3 (permalink)  
Старый 22.11.2017, 17:39
Аватар для ChezzyChezz
Новичок на форуме
Отправить личное сообщение для ChezzyChezz Посмотреть профиль Найти все сообщения от ChezzyChezz
 
Регистрация: 19.11.2017
Сообщений: 7

Подскажите урок или пример загрузки данных с БД или сайта?
Т.е.:

.innerHTML = 'Hello google!'; Где Hello google берется с базы данных, или сайта.

Последний раз редактировалось ChezzyChezz, 22.11.2017 в 18:41.
Ответить с цитированием
  #4 (permalink)  
Старый 23.11.2017, 01:09
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

Пример: 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.
Ответить с цитированием
  #5 (permalink)  
Старый 25.11.2017, 10:57
Новичок на форуме
Отправить личное сообщение для ПрограммистСергей Посмотреть профиль Найти все сообщения от ПрограммистСергей
 
Регистрация: 24.11.2017
Сообщений: 1

Блокатор звука
Всем привет! Не подскажет ли кто?
Понадобилось расширение, которое блокирует звук на определенных сайтах. Типа заходишь на яндекс.музыку, нажимаешь воспроизвести... судя по сайту она вроде бы идет, но ты ее не слышишь, потому что из-за расширения до браузера не доходит. В этом и заключается вся задача.
Само-то расширение, я, конечно, сделал, вот только javascriptа, который просто блокировал бы звук, нигде нет. Вернее есть, но только если ты разработчик сайта, а не расширений.
Не встречался ли вам такой скрипт?
Заранее спасибо.

P. S. : Я понимаю, что проще скачать расширение где-то и все. Но мне нужно его скрыть от жены, поэтому делаю сам, а то догадается, выключит и будет ночью музыкой спать мешать.
Ответить с цитированием
  #6 (permalink)  
Старый 02.01.2018, 13:19
Аватар для ChezzyChezz
Новичок на форуме
Отправить личное сообщение для ChezzyChezz Посмотреть профиль Найти все сообщения от ChezzyChezz
 
Регистрация: 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, изменил - сохранил и оно в расширении появилось)
Ответить с цитированием
  #7 (permalink)  
Старый 02.01.2018, 13:38
Аватар для ChezzyChezz
Новичок на форуме
Отправить личное сообщение для ChezzyChezz Посмотреть профиль Найти все сообщения от ChezzyChezz
 
Регистрация: 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)
Ответить с цитированием
  #8 (permalink)  
Старый 02.01.2018, 22:23
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

Английским языком вам написано:
TypeError: Cannot set property 'innerHTML' of null
ТипаОшибка: немогу покласть свойство нутрянойХтмл в нуль

Т.е. нет такого элемента на странице.
"session-chat" всё-таки не имя элемента, а класс и потому должен быть указан соответствующим образом('.session-chat').
__________________
29375, 35

Последний раз редактировалось Aetae, 02.01.2018 в 22:27.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расширение для FF на WebExtexnsion sergionic Firefox/Mozilla 0 31.08.2017 22:55
Обясните задержку Faab jQuery 11 15.06.2013 09:32
поиск классов внутри тега yozuul jQuery 24 14.06.2013 22:00
HTA-приложение для радио Pianorama Magneto Ваши сайты и скрипты 42 22.01.2012 08:34
Как из javascript'а сделать расширение для FF? nule Общие вопросы Javascript 0 07.11.2011 11:58