דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. אלמנט שלא ניתן לגישה בJS - עד ללכידה דרך כלי המפתחים

אלמנט שלא ניתן לגישה בJS - עד ללכידה דרך כלי המפתחים

מתוזמן נעוץ נעול הועבר תכנות
4 פוסטים 3 כותבים 208 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • צדיק תמיםצ מנותק
    צדיק תמיםצ מנותק
    צדיק תמים
    כתב ב נערך לאחרונה על ידי
    #1

    ישנה קבוצת צ'אט (Hangout) שאני מעוניין מסיבות מסוימות להסתיר אותה מהתפריט, אבל לא לצאת ממנה. העברה לארכיון (לאחר השתקה) לא עוזרת, כי ברגע שמתקבלת הודעה חדשה השיחה קופצת חזרה החוצה.
    כתבתי את הקוד JS הבא (מיועד עבור התצוגה הישנה עם Hangout, לא עם גוגל צ'אט):

    const chats = document.querySelectorAll(".lt")
    for (let i = 0; i < chats.length; i++) {
        const label = chats[i].ariaLabel;
        if (/שיחה עם XYZ/.test(label)) {
            console.log("removed!")
            chats[i].parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.remove()
        }
    }
    

    אלא שגם לאחר שהמייל נטען לחלוטין, הסלקטור לא מניב שום תוצאות...
    ee7e5263-1c46-4729-a02b-61f00f669baf-image.png
    אבל ברגע שאני לוחץ על בורר האלמנטים בכלי המפתחים (3db3d032-1aa2-47af-aad2-21582661096d-image.png ) ו"תופס" את האלמנט הזה, פתאום הסלקטור עובד!
    57124bc7-0faf-4d19-8306-d387b3064d38-image.png
    וגם הקוד שלעיל עובד, ומסיר מיידית את השיחה ששמה "XYZ" (שם בדוי כמובן...)
    אשמח לעזרה!

    Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
    טיפים

    5 תגובה 1 תגובה אחרונה
    0
    • 5 מנותק
      5 מנותק
      5566brs
      השיב לצדיק תמים ב נערך לאחרונה על ידי
      #2

      @צדיק-תמים כנראה בגלל שזה מסגרת נפרדת (iframe).

      צדיק תמיםצ תגובה 1 תגובה אחרונה
      3
      • צדיק תמיםצ מנותק
        צדיק תמיםצ מנותק
        צדיק תמים
        השיב ל5566brs ב נערך לאחרונה על ידי
        #3

        @5566brs כנראה אתה צודק... כי ניסיתי:

        const iframe = document.getElementsByTagName("iframe")[3]
        const innerDoc = iframe.contentDocument || iframe.contentWindow.document;
        console.log(innerDoc.body);
        

        (על פי זה), וקיבלתי שגיאת cors... מעניין שאחרי לכידה בכלי מפתחים, יש גישה...
        אין איזה פתרון/מעקף?

        Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
        טיפים

        NoamAnisfeldN תגובה 1 תגובה אחרונה
        0
        • NoamAnisfeldN מנותק
          NoamAnisfeldN מנותק
          NoamAnisfeld
          השיב לצדיק תמים ב נערך לאחרונה על ידי
          #4

          @צדיק-תמים השאלה היא דרך איפה אתה מריץ את הקוד, זה עניין של הרשאה. קוד בדומיין אחד לא יכול להשפיע על iframe מדומיין אחר, מטעמי אבטחה, אבל כלי המפתחים לא נתון תחת המגבלה הזו.

          בקונסולה יש "הקשר" נפרד לiframe ושם אתה יכול להריץ קוד שמורשה להפעיל מניפולציה על הiframe. או אם אתה יוצר browser extension שזה קוד פריוולגי אני משער שהוא מורשה לפעול על ה iframe.

          תגובה 1 תגובה אחרונה
          0
          • dovidD dovid העביר נושא זה מ-תכנות ב-

          בא תתחבר לדף היומי!
          • התחברות

          • אין לך חשבון עדיין? הרשמה

          • התחברו או הירשמו כדי לחפש.
          • פוסט ראשון
            פוסט אחרון
          0
          • דף הבית
          • קטגוריות
          • פוסטים אחרונים
          • משתמשים
          • חיפוש
          • חוקי הפורום