javascript-скрипт содержимого расширения Chrome - run_at document_end работает неправильно

В качестве теста я создаю расширение для Chrome, которое скрывает раздел «новости» справа от Facebook и рекламу с правой стороны. Также измените цвет фона на черный.

Моя проблема сейчас в том, что когда вы загружаете facebook, новости и белый фон появляются на крошечную секунду, а затем исчезают. Похоже, что установка run_at на document_end заставляет мой javascript запускаться после того, как страница уже загружена. Я также пробовал document_start и document_idle с аналогичными результатами. Как сделать так, чтобы раздел новостей вообще не появлялся?

manifest.json:

{
  "manifest_version": 2,

  "name": "FB_Trending_Hide_ChromeExtension",
  "description": "This extension will hide the trending news section of Facebook",
  "version": "1.0",

  "browser_action": {
   "default_icon": "icon.png"
  },
  "content_scripts": [{
    "run_at": "document_end",
    "matches": ["*://*.facebook.com/*"],
    "js": ["content.js"],
    "all_frames": true
  }],
    "permissions": [
    "tabs", "*://*.facebook.com/*", "activeTab"
  ]
} 

content.js:

document.getElementById("pagelet_trending_tags_and_topics").style.display = 'none';
document.getElementById("pagelet_ego_pane").style.display = 'none';
document.body.style.background = 'black';

person sudoExclaimationExclaimation    schedule 11.01.2017    source источник


Ответы (1)


Это похоже на задание для записи CSS, "css", content_scripts, а не JavaScript, "js" . Использование CSS должно быть проще: вам не нужно даже думать о том, что элементы могут добавляться на страницу динамически.

Вы можете сделать что-то вроде:

manifest.json (только часть content_scripts):

  "content_scripts": [{
    "run_at": "document_start",
    "matches": ["*://*.facebook.com/*"],
    "css": ["facebookContent.css"],
    "all_frames": true
  }],

facebookContent.css:

#pagelet_trending_tags_and_topics {
    display:none !important;
}
#pagelet_ego_pane {
    display:none !important;
}
body {
    backgound:black !important;
}
person Makyen♦    schedule 12.01.2017