Arhn - архитектура программирования

facebook - удалить людей, которых вы, возможно, знаете

Я только сейчас захожу в фейсбук. Этот всплывающий раздел «люди, которых вы, возможно, знаете», сводит меня с ума, и я просто пытаюсь от него избавиться.

У меня есть скрипт Greasemonkey, но он не работает. Ни один из многочисленных опубликованных скриптов Greasemonkey для его удаления также не работает.

В исходном коде страницы facebook раздел «Люди, которых вы можете знать» (PYMK) находится в элементе скрипта, который содержит только один очень длинный вызов функции, т.е.

<script>big_pipe.onPageletArrive({"phase":1,"id":"pagelet_ego_pane","is_last":true,"css":["30YXW","MA+x5"],"js":["uBXoU","LNwoY","NavLF","ZtuLL"],"onload":["window.__UIControllerRegistry[\"c4dc09ff06275f0732488206\"] = new UIPagelet(\"c4dc09ff06275f0732488206\", 
...

Итак, я просто пытаюсь удалить этот элемент сценария, и я попробовал это как первый проход:

function Remove_PYMK() {


  var scripts = document.getElementsByTagName('script');    


  for (n=0; n<scripts.length; n++) {    
    if (scripts[n].innerHTML.indexOf("People You M") >=0) { 
      scripts[n].style.visibility="hidden";
      alert ("found it");   
    }   
  } 


}


Remove_PYMK();

//document.addEventListener("onload", Remove_PYMK, true);

Находит, просто не удаляет.

Это что-то вроде клуджа, само собой разумеется. Есть ли правильный способ отключить PYMK, а ТАКЖЕ предотвратить отображение моего имени в PYMK на страницах других людей.

РЕДАКТИРОВАТЬ:

Вот весь узел скрипта до строки «People You May Know» (FWIW):

<script>
    big_pipe.onPageletArrive({
        "phase": 1,
        "id": "pagelet_ego_pane",
        "is_last": true,
        "css": ["30YXW", "MA+x5"],
        "js": ["uBXoU", "LNwoY", "NavLF", "ZtuLL"],
        "onload": ["window.__UIControllerRegistry[\"c4dc09ff06275f0732488206\"] = new UIPagelet(\"c4dc09ff06275f0732488206\", \"\\\/pagelet\\\/generic.php\\\/WebEgoPane\\\/\", {}, {});; ;", "new EmuController(\"6002939839588-id_4dc09ff0611f60c83869379\", \"AQBsgeDBRnJ4uiUuieZs681Fm3aqB5-626iHBbItdNfF5TWZZJ-9dZ60xyVaJr7JfimJpKgKNxXqF_DH_aHjru3RItUcHs2gI_ZLQNYdIENRSM5zh_pcjiDZyN7vv0trj5UDBOfXp6A6yDdVCZDLntgw1fU3cFSjPQkk9KQHnU3B61bkLQfoyQzysiefB82Ptf7tgkHDqlDwNpUT-HhYPOr8yGKxD6XavtgIfsW9hLPfGy6Eg7POsGHDyXrIDrl-Q3HM2CPoByeL43H0wIklCdbe8Oi3VnfKa-ysGjLB8YuAZHOJ1GH9feOxFphmcHE5C1R15rcPdnXSOaBI5bIJdJ24pIfAlNmGjXSMHU5LOiBm3FvCi_WzotJKxeRPjMBRmqQXw2CJ-xhFGGFqGRfJvoa9m8XKb1YpXzx-pqcpzDJ1z2xz3TT7gvObi5U-9ZaRtzNHY5g0UI3W-JeYjC-67Ir74mltDpXojdx-fWG5c-3OoX5bNJrCh1ifbQKFn3wLDAMdUHk4h8GO5eJdP_1xvJFal0SWZnwnMbty2AAd7EeFcSQNkjdK9BViqFo7OLLh8tT-j9k1fNnccza4M9jN94NEEjXRxU2KYhSGjdKL0fMJCfYA1y-3MMi7WbwEg7QiH-0AY_vQCu75j7vBtrwhjVpIK4kpBpNLYx5ucqLMe1RXt3PkE-xY0Jr5LRtwDq6MjeLrCjP0JaBL9o55o2DGPN-MNndM5YSCiZbri6ms7kJ0DADuZxiWkZDISrZlE_RZ4-8\", 4, 0)", "new EmuController(\"6003087448525-id_4dc09ff0612184c51197177\", \"AQAVDQezDWg8RCTH6EnPLCILHIX4upfP5v0NJ_-npYstbN0e4SWpCrfbYAQRM_9dVfozxS89XSxUt1jgEQpRbTHE3sfkcngkwyKIjKGhmIS8rKfDX_gP4ER0NnVJlJyX6FaGRul0h2UUYxnxj3uaIsq7LzcI36r4lBTXBg1THtRC2pZ1MuUzvkTlYlwh4B-c5lXwt-6nKTTMdoZsTRsUDG_JTAPHeTV0-FYMr-1roaJpR_j--aw_MxJ6NxFEbTvkyL4QVN-ZRpWfeovChdYk4j_cgxoxRE-qm-u_hYcVbbtVrQXq0kVtHHhX8ijyeLt-4kZcM6gfnHpfBkB06z69adcA9rzWLA6VEo4_OFthPtc2SydkBs6DyAx51mAG3mBgnXXBJciYrQzWM-vSvODcV1dKTb5tSxO81Uswl-3Uo9Jf_VzfUgoKdeHyQeem31WMUmYm9kxCOVvKy4p7sE09GQoAfPBoz4MOrAgs3MFBFzpwIvKyZGvE6cX8haiK4POdP1zrEnMLFDyF0HRAaxfl4gKYw9kpGOtkrwezzU_biPYxV26-sUjXvPGx87WAZszqlIosXOJVux33eJD3V5bDcFD06Faze9OE5Segl4Tdmd0VZs73lt4PGXfF90QLCqZeUuNUUCkhRRRsP99SdW99Ghx0JncIQDpfX3fByce58jmKSCFWjcHy5qTPlryVI3KVow-XMLiguVmdbicCBGq-7im00hCmjH2-5HCuQnhHafNHUSZzZiHTg4KaTqvIMTfQIXs\", 4, 0)", "new EmuController(\"6003788660296-id_4dc09ff0612299683640305\", \"AQCvUWOfDiphu5NGe7r6dBna_IEvTbjrshIpxmOlMO3jwk650AHb_T03II0mnzLwpdy617kQMD8n8RIE_YqIE1hNxxoZL4M4ba8QiPz6h-u003c\/h4>\JW8WSPFBt1RSMeJQV7swF6HWeAm3Ew0fphxMwpdYDIu2fbEGLujVFCKwtMCzN6As6berB8z7iOoWdsAFulXLBLvHID0-Dn0_qCxF-AKl0b9s8cWBwF9fG1oI0r1TNQZGILLW8daCOkkjhpCUOHkXI6PFxyw5CXYLSmnVAxpvougwh7vt-NV3RWPuYnLN1QOvf07q2DRv-2wY1JUexmcWl6f5zquDJfEW3CxlluJ76eKZowfiGW-V-1M9K9whgfALkEjGDA-JM9P_lfXaukcmDDwAIHLFwG_7a9jNP4XmbLUyQEhUesxkImM5z7IAzt-HBIbtDfD8kHt50AG3nm3GEHv-yChqKMWqmcuzyYgmMGaXXKCd9Pb2a_pcF-QR_YIg2qgptFnn82D7Bb9Tedmce-FveNix9Ej7_fwr-IAncYwABNrs9zX34TkbLgvqhvH9RayLDXO7GnGWB_I4jorTbmNvpxf0rG8aXp3udXdNTEZAjmU3Yp1TOySAXY2Z5Ju6oYS51-tQ2SZIihYsa49TxQdSHet9vO4tjY_7rwT8Cou_TrmFWwZXuQTGwfUByP9Cl6wrUNhHeW3zbrB-BAxofxqcGQ44C7HPsvVTdkSOKhx60zaWaaBnDZ87QjEAgNJ-NjN8EqO_jMq3ig2Vn2CKzBhhQ\", 4, 0)", "new EmuController(\"6002985380734-id_4dc09ff06123a8641112115\", \"AQBkHx98vGQ8Bn2h8R42L-S1OQfGO1ksTR41Mds3V7wEwzKNgBG4H2o-EHRvRSd9SsIPGChah-NHU5Jt_wbtng06_Dw0U0WkxfBkFx374OINZj69o69sPYmoQZlY2xsClxS0T2t_h7zs9RzX4NpvYtSL6I3MALL0CsWS0KLv-CQHUF-IWpeNj6uGLG4efTFLBBMeQM0-Wr1IWYXU6oQZJRPwS7trOw4xW56wGBnhGPv1KRwr8ITU4NGUZlBKrUNRvx1SeyFn4MYNCrzXG0W_HxsWWv_ekTeDefvMF0gHZNDgcA07-FLEYxfCEzBL498OERPhoyBsmFE9fGbOY1EcO_LB_moqIncJF-TosooObw7f4BMZwHMxfGgju_UKndyeRq_l3pcTkSyjhbZY5-1sjojM8AI9VxCLdQms5QA7lvflmdPpwXS3b8UmCNfEtIy4iGED7yL7p1CKAKgJcO4jzmJ3Epk9tK38zy3Nv5yGB0-63dwjcvZMoTJMa545d2Vgs7J5_OiD6gA5fX4oB84m1dcI5e2G6AgzXAsWTUSuIGliPQr2oFjaz2mOzepyCvoatPjr1rtDkX_xNK9S27jXSuu9k0tiKCOkPsdccPO6235zCT0HeiPI0sHsUTpDmiFXHyFx0r_Kus5iCU5CjKjX1okSuKQL7WM5HTBvYRCAbPNthqa9oNDDNmwNG-Im7wNZHEw4ZZuXpqg4UolyUZAkY7dKBRvGmK0sSGSIjIISOq1e6zBdekf7OlZ5yLnCwhAI_5E\", 4, 0)"],
        "onafterload": ["new EmuTracker(\"6002939839588-id_4dc09ff0611f60c83869379\", false)", "new EmuTracker(\"6003087448525-id_4dc09ff0612184c51197177\", false)", "new EmuTracker(\"6003788660296-id_4dc09ff0612299683640305\", false)", "new EmuTracker(\"6002985380734-id_4dc09ff06123a8641112115\", false)"],
        "refresh_pagelets": ["c4dc09ff06275f0732488206"],
        "content": {
            "pagelet_ego_pane": "\u003cdiv id=\"c4dc09ff06275f0732488206\">\u003cdiv class=\"ego_column egoOrganicColumn\">\u003cdiv class=\"ego_section\">\u003cdiv class=\"uiHeader uiHeaderTopAndBottomBorder mbs uiSideHeader\">\u003cdiv class=\"clearfix uiHeaderTop\">\u003ca class=\"uiHeaderActions rfloat\" href=\"\/l.php?u=\u00252Ffind-friends\u00252Fbrowser\u00252F\u00253Fref\u00253Dpsa&amp;h=1ef37&amp;cb=3&amp;p=AQCicK3gLdJTaaW2xZUw3DWp7N89P5QwZvSEfn3y2vOqjXyzr60nDcHEPY7Y9x7LpK9-J5evLB7_Dwm9F4d0k5i9sQ-CXiH_GXc-toIfka4dUSK_\">See All\u003c\/a>\u003cdiv>\u003ch4 class=\"uiHeaderTitle\">People You May Know\u003c\/div>
04.05.2011

Ответы:


1

Этот сценарий GM не удаляет узел script, он просто «скрывает» его, что никогда не будет иметь никакого эффекта.

GM может фактически удалить этот узел script, но, увы, этого не произойдет до тех пор, пока узел не будет запущен. Его удаление после этого не остановит работу, так как JS уже загружен в память.

Проще всего удалить контейнер, в котором отображается хлам PYMK.
Я не пользуюсь Facebook, но из вашего кода видно, что контейнер может иметь идентификатор "pagelet_ego_pane". ". В этом случае вы можете удалить его, например:

var PYMK_Container  = document.getElementById ('pagelet_ego_pane');
if (PYMK_Container) PYMK_Container.parentNode.removeChild (PYMK_Container);

Вы также можете попробовать удалить надоедливую функцию, что может оказаться невозможным. Функция похоже установлена ​​с этим кодом new UIPagelet(\"c4dc09ff06275f0732488206\". Итак, если вы можете найти соответствующую функцию, вы можете попробовать удалить ее с помощью:

unsafeWindow.OffendingFunctionName = function() { return; }

Если это сработает, это может сократить «перемешивание» JavaScript, которое может замедлить работу этой страницы.

Что касается того, чтобы ваше имя не отображалось в PYMK других людей, это то, что делается серверами Facebook, возможно, у них есть пользовательские настройки, иначе вам придется отправить Facebook «письмо в строгой форме». ;)

04.05.2011
  • Это похоже на ответ, хотя мне придется подождать, когда PYMK снова появится случайным образом. Что касается второго решения, я не знал, что вы имели в виду, найти соответствующую функцию. Это единственное появление в html-файле строки UIPagelet, поэтому, по-видимому, мне придется искать в загруженных файлах .js. 04.05.2011
  • Лучше использовать такой инструмент, как Firebug, чтобы найти функцию. Но не переживайте; в любом случае убийство функции было подливкой. 04.05.2011
  • Что ж, меня беспокоят накладные расходы на выполнение строкового поиска каждого отдельного элемента сценария, поэтому я также попробую это второе решение, я думаю - все ли будет ясно, когда я найду, где определен UIPagelet? 04.05.2011
  • (Я отредактировал исходный пост, включив в него весь элемент сценария вплоть до PYMK) 04.05.2011
  • Я не уверен, что ты имеешь в виду. Зачем нужны накладные расходы на поиск строки для каждого отдельного элемента скрипта? Ни ваш сценарий, ни Facebook этого делать не должны. Что касается поиска определения UIPagelet(), конечно, это поможет. Но погружение в раздутый коммерческий JS не для брезгливых. 04.05.2011
  • Неважно - я думал, что с первым предоставленным вами решением я все равно буду перебирать каждый узел скрипта на странице, как сейчас (а их много). Я понял ваш код, просто от меня ускользнуло, что я больше не просматривал все узлы скрипта. Не очень хорошо знаю JS, поэтому не понял второго решения, но это неважно. Спасибо 04.05.2011

  • 2

    Более простой способ сделать это - просто добавить таблицу стилей пользователя, которая скрывает проблемные узлы, не требуя javascript.

    Однако, если вам нужен простой метод, который просто работает «из коробки» для скрытия поля «Люди, которых вы можете знать», FB Браузерный аддон Purity (также доступный в виде скрипта Greasemonkey) имеет возможность скрыть блок PYMK, а также параметры для скрытия большинства других блоков/ссылок на сайте.

    22.08.2014
    Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..