如何获取我的扩展以阻止页面上的元素?

时间:2012-04-21 08:25:39

标签: google-chrome-extension

我想以最简单的方式做到这一点,我不介意它是否允许元素加载然后隐藏它。基本上我想做的不同于以前为YouTube评论拦截器所做的事情,但我无法弄清楚如何实际获得我的扩展来阻止评论。我知道有限的HTML / CSS / JavaScript,但我不知道从哪里开始。我已经知道需要从页面中一致地删除哪些元素,但不知道如何告诉chrome隐藏它们。

编辑:如果可能的话,我会根据他们的<div>对HTML中的某些部分进行博客。

1 个答案:

答案 0 :(得分:4)

以下是我的Facebook广告停用程序:

的manifest.json

{
  "name": "Facebook Ads Disabler",
  "version": "0.0.1",
  "description": "Disable side ads on facebook! By Alexander Piechowski.",
  "content_scripts": [
    {
        "matches": [
        "http://*.facebook.com/*","https://*.facebook.com/*"],
        "js": ["main.js"],
        "run_at": "document_end",
        "all_frames": true
    }
  ]
}

main.js

function remove(){
try
  {
    document.getElementById('pagelet_ego_pane_w').innerHTML = '';
  }
catch(err)
  {
    //Skip if "pagelet_ego_pane_w" div tag isn't on this page
  }
  try
  {
        document.getElementById('pagelet_ego_pane').innerHTML = '';
  }
catch(err)
  {
    //Skip if "pagelet_ego_pane" div tag isn't on this page
  }
    try
  {
        document.getElementById('pagelet_side_ads').innerHTML = '';
  }
catch(err)
  {
    //Skip if "pagelet_side_ads" div tag isn't on this page
  }
      try
  {
        document.getElementById('fbPhotoSnowliftAdsSide').innerHTML = '';
  }
catch(err)
  {
    //Skip if "fbPhotoSnowliftAdsSide" div tag isn't on this page
  }
console.log('All ads have been removed.');
setTimeout(function(){remove();},2000);
}
remove();

这使得ID的所有内部完全空白,并且每当我在facebook中转到新页面时每2秒重新运行一次。