שיתוף: סקריפט להסרת אלמנט מיד לאחר שנוצר
-
@dovid אמר בשיתוף: סקריפט להסרת אלמנט מיד לאחר שנוצר:
@WWW אתה זה שצודק, לא חשבתי על זה. ייתכן מאוד שאכן MutationObserver פחות יעיל במקרה שיודעים את הclass ולא מדובר בהרבה מופעים.
אני חושב שזה הפרש ענק.
בג'מייל לדוגמה, חיפשתי משהו שיעבוד רק על זה, כי אם לא, זה ממש בזבוז.
-
@dovid
לזה התכוונת:<div class="mt-signature" contenteditable="false" g_editable="false"> <table border="0" cellpadding="8" cellspacing="0" contenteditable="false" g_editable="false" data-signature-template="senderNotified" style="user-select: none;"> <tbody><tr> <td> <a href="https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&" class="mt-no-pointer-events" style="text-decoration:none;" data-mt-detrack-inspected="true"> <img src="https://s3.amazonaws.com/mailtrack-signature/sender_notified.gif" alt="Mailtrack" class="mt-no-pointer-events" width="32" height="32" g_editable="false"> </a> </td> <td> <span style="color:#777">Sender notified by</span> <br> <a href="https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&" class="mt-install mt-no-pointer-events" style="color:#4374F7" data-mt-detrack-inspected="true">Mailtrack</a> <span style="color: transparent; font-size: 0; user-select: none">11.09.19, 23:13:52</span> </td> <td> <div class="mt-remove-signature-button" g_editable="false"> <a href="#" style="text-decoration:none;" class="mt-remove" data-mt-detrack-inspected="true"><em>×</em><span>REMOVE</span></a> </div> </td> </tr> </tbody></table> </div>
?
-
const config = { attributes: false, childList: true, subtree: true }; const observer = new MutationObserver( function(mutationsList) { for(let mutation of mutationsList) for(let el of mutation.addedNodes) if(el.tagName == "DIV" && el.getAttribute("class") == "mt-signature") el.remove() } ); observer.observe(document, config);
-
@WWW אמר בשיתוף: סקריפט להסרת אלמנט מיד לאחר שנוצר:
@dovid OK, אבל הדוגמה שהבאת הפוכה,
כי בעצם בשיטה שלי אני משתמש במשהו יקר יותר, רק משתמש בו פחות פעמים.
ובשיטה שלך אתה משתמש במשהו זול, אבל הרבה פעמים.למה זה הפוך? המשל הוא הלולאה של ה1+1 היא ריבוי של פעולה זולה, ביחס לconsole.log.
אמרתי שעל אותה דרך אולי הMutationObserver הוא אולי מרבה פעולות אבל אולי זולות ביחס לאירוע על האנימציה. -
@dovid אמר בשיתוף: סקריפט להסרת אלמנט מיד לאחר שנוצר:
למה זה הפוך? המשל הוא הלולאה של ה1+1 היא ריבוי של פעולה זולה, ביחס לconsole.log.
אמרתי שעל אותה דרך אולי הMutationObserver הוא אולי מרבה פעולות אבל אולי זולות ביחס לאירוע על האנימציה.אני פשוט לא הבנתי אותך בהתחלה, חשבתי שאתה מתכוין שהMutationObserver פחות יעיל, עכשיו שהבנתי שאתה מתכוין שזה יותר יעיל, אז הכל בסדר.