2016-08-11 2 views
0

Я создал расширение хрома и поместил следующий код в моем сценарии содержимого, чтобы удалить некоторые из содержания в странице поиска Google:Как изменить страницу результатов поиска Google в сценарии содержимого?

window.onload = function() { 
    $('.g').remove(); // This is the container for the search results in Google 
} 

Это не работает, даже если я вижу, что работает в Developer Консоль при выполнении вручную.

+0

Как выглядит ваш 'manifest.json'? Вы ввели jquery? «Если я не открываю консоль разработчика Chrome», вы имеете в виду выполнение выше кода в инструменте F12? Пожалуйста, предоставьте более подробную информацию. –

ответ

2

Страница Google загружает контент динамически, поэтому вам нужно будет следить за элементами либо с помощью MutationObserver, либо с помощью обратного вызова setTimer, либо, возможно, найти событие, которое страница использует для оповещения о его обновлении. Многие сайты используют событие message, поэтому давайте его подключим.

content.js:

// process current DOM, most probably nothing useful at this point 
onGoogleSearchUpdated(); 

// listen to "sr" signal emitted by Google search page 
window.addEventListener('message', function(e) { 
    console.log(e.data, e); 
    if (typeof e.data === 'object' && e.data.type === 'sr') { 
     onGoogleSearchUpdated(); 
    } 
}); 

function onGoogleSearchUpdated() { 
    console.log('Removed:', $('.g').remove()); 
} 

Чтобы определить точное имя сигнала динамически загружаемой веб-страницы, открытые DevTools (F12) консоль и запустить window.addEventListener('message', console.log), а затем выполнить поиск в InputBox запроса, просмотрите события, появляющиеся в консоли, и попытайтесь найти то, что полезно для вас.

Смежные вопросы