Расширение Chrome: как манипулировать внутренней DOM Gmail с помощью jQuery?

Хотя без проблем обрабатывать внутренний контент Gmail с помощью сценария содержимого css, я не могу сделать это с помощью jQuery и настраиваемого сценария js-контента.

Я хочу использовать jQuery для управления внутренней DOM внутренней почтой.

manifest.json

"content_scripts": [ {
 "matches": ["*://*.mail.google.com/*"],
 "js": ["jquery.js", "default.js"]
 } ],

default.js

$(document).ready(function() {
 $("div.gK").css("color", "red");
});

Однако соответствующий элемент div.gK не отражает изменения css:

Любые идеи, почему это не работает?

2 ответа

Событие DOMReady срабатывает задолго до создания целевого элемента. Когда вы перейдете на mail.google.com, вы увидите панель загрузки - как раз перед тем, как появится ваше событие.

Я не уверен, имеет ли GMail какие-либо пользовательские события, которые более надежны, иначе я бы предложил использовать

jQuery(window).load(function(){
 jQuery("div.gK").css("color", "red");
});

Если вам хочется рассказать о событиях более подробно, я предлагаю прочитать и использовать инструменты разработчика Chrome, с акцентом на вкладке "Временная шкала".


Убедитесь, что расширение не вызывает ошибку, посмотрев на Javascript Console. Проблема может заключаться в том, что она не выполняется, потому что она бросает ошибку. Приветствия!

licensed under cc by-sa 3.0 with attribution.