בירור | סקריפט להסרת חתימת מייל טראק הפסיק לעבוד...
-
תגובה: מדריך | חסימת חתימת מייל - של מייל טראק Mailtrack למשתמש חינמי
נראה ששוב הם שינו משהו בחתימה וכעת חוזרת השורת חתימה במייל
אשמח לדעת האם גם אצלכם זה כך -
תגובה: מדריך | חסימת חתימת מייל - של מייל טראק Mailtrack למשתמש חינמי
נראה ששוב הם שינו משהו בחתימה וכעת חוזרת השורת חתימה במייל
אשמח לדעת האם גם אצלכם זה כך@מוגן ג'מיני כתב לי קוד שבנתים עובד לי טוב
// ==UserScript== // @name הסרת מיילטראק חתימה (עדכון סופי - Mailsuite) // @namespace http://tampermonkey.net/ // @version 0.4 // @description מעלים את חתימת Mailsuite "Email tracked with Mailsuite" מחלון יצירת מייל חדש ב-Gmail // @author WWW // @match https://mail.google.com/* // @grant none // @run-at document-idle // ==/UserScript== (function() { 'use strict'; // *** הטקסט הייחודי של החתימה, כפי שמופיע בצילום המסך *** const SIGNATURE_TEXT = 'Email tracked with Mailsuite'; // פונקציה שמאתרת ומסירה את האלמנט על בסיס הטקסט שלו function removeMailsuiteSignature() { // מחפש את כל אלמנטי ה-DIV שמהווים "שורת קוד" בתוך ה-DOM של Gmail. // אנו מגבילים את החיפוש לתוך אלמנטים ניתנים לעריכה (Compose/Reply windows). const possibleContainers = document.querySelectorAll('.editable.LW-yr, div[role="textbox"]'); possibleContainers.forEach(container => { // עובר על כל הילדים של הקונטיינר ומחפש אלמנט שמכיל את הטקסט המבוקש. // הסלקטור * מייצג כל אלמנט בתוך הקונטיינר. const elements = container.querySelectorAll('*'); elements.forEach(el => { // בדיקה אם האלמנט מכיל את הטקסט הייחודי והוא אינו חלק מאלמנט גדול אחר (כמו גוף המייל כולו) if (el.textContent && el.textContent.includes(SIGNATURE_TEXT) && el.children.length < 5) { // ניסיון להסיר את האלמנט ואת כל הקרובים הריקים שנוצרו בעקבותיו let currentEl = el; let attempts = 0; // מטפסים למעלה עד שמוצאים אלמנט שמתאים להסרה מבלי לשבור את מבנה המייל while (currentEl && currentEl.tagName !== 'BODY' && attempts < 5) { const parent = currentEl.parentNode; if (parent) { // אם מצאנו DIV, או אלמנט שאינו מכיל טקסט נוסף פרט לחתימה, מסירים אותו if (currentEl.tagName === 'DIV' && currentEl.children.length <= 1) { parent.removeChild(currentEl); return; // עוצר את החיפוש לאחר הסרה } // אם מצאנו שבירת שורה (BR) או אלמנט קטן אחר if (currentEl.tagName === 'BR' || currentEl.tagName === 'P') { parent.removeChild(currentEl); currentEl = parent; // ממשיך לטפס } else { currentEl = currentEl.parentNode; } } attempts++; } } }); }); // גיבוי נוסף: ניסיון להסיר על ידי סלקטורי תכונה ידועים (למקרה שהטקסט משתנה) document.querySelectorAll('div[data-mailtrack], div[data-signature-widget]').forEach(el => { if (el.textContent.includes('Mailsuite')) { // ודא שזהו אכן אלמנט החתימה if (el.parentNode) { el.parentNode.removeChild(el); } } }); } // *** MutationObserver לניטור שינויים ב-DOM (הוספת חלון כתיבה חדש) *** // מנטר את כל גוף הדף כדי לתפוס את חלון הכתיבה ברגע שהוא מופיע. const observer = new MutationObserver((mutations) => { mutations.forEach((mutation) => { if (mutation.addedNodes.length) { // הפעל את פונקציית ההסרה כאשר נוספים צמתים חדשים לדף. removeMailsuiteSignature(); } }); }); const config = { childList: true, subtree: true }; observer.observe(document.body, config); // הפעלה מיידית במקרה שהחלון כבר פתוח removeMailsuiteSignature(); // מנגנון גיבוי אחרון: הפעלה חוזרת כל שנייה לוודא שהאלמנט לא הופיע מאוחר יותר setInterval(removeMailsuiteSignature, 1000); })();אשמח לקבל מידע מהציבור האם גם לו זה עובד טוב
בהצלחה -
מ מוגן סימן נושא זה כנפתר