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

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

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

הזרקת כפתור ב gmail

מתוזמן נעוץ נעול הועבר תכנות
11 פוסטים 3 כותבים 406 צפיות 6 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • I ivrtikshoret

    שלום וברכה
    אני מעוניין בלפתח תוסף שיוכלו לצפות בסרטונים וכן לשמוע קבצי שמע בתוך gmail ולכן אשמח לעזרתכם:
    אני ניסיתי להזריק כפתור ע"י appendChild
    וכתוב לי ב Console:
    appendChild is not a function
    מישהו יודע למה זה קורה?

    מוטי אורןמ מנותק
    מוטי אורןמ מנותק
    מוטי אורן
    כתב ב נערך לאחרונה על ידי
    #2

    @ivrtikshoret אם תוכל קצת לפרט. מה בדיוק כתבת, רק appendChild? זה ממש לא אמור לעבוד לך.

    I תגובה 1 תגובה אחרונה
    1
    • מוטי אורןמ מוטי אורן

      @ivrtikshoret אם תוכל קצת לפרט. מה בדיוק כתבת, רק appendChild? זה ממש לא אמור לעבוד לך.

      I מנותק
      I מנותק
      ivrtikshoret
      כתב ב נערך לאחרונה על ידי ivrtikshoret
      #3

      @מוטי-אורן
      זה מה שכתבתי:

      var x, i;
      x = document.querySelectorAll(".aQw");
      for (i = 0; i < x.length; i++) {
        var btn = document.createElement("BUTTON");
      btn.innerHTML = "CLICK ME";
      x[i].appendChild(btn);
      }
      

      ובקובץ המניפיסט כתבתי:

      {
        "name": "play video in gmail",
        "version": "1.0.0.0",
        "manifest_version": 3,
        "icons": {
          "128": "icon.png"
        },
        "action": {
          "default_popup": "popup.html"
        },
         "content_scripts": [ {
            "js": [ "play video in gmail.js" ],
            "matches": [ "https://mail.google.com/*" ],
            "run_at": "document_start"
         } ]
      }
      
      מוטי אורןמ תגובה 1 תגובה אחרונה
      1
      • I ivrtikshoret

        @מוטי-אורן
        זה מה שכתבתי:

        var x, i;
        x = document.querySelectorAll(".aQw");
        for (i = 0; i < x.length; i++) {
          var btn = document.createElement("BUTTON");
        btn.innerHTML = "CLICK ME";
        x[i].appendChild(btn);
        }
        

        ובקובץ המניפיסט כתבתי:

        {
          "name": "play video in gmail",
          "version": "1.0.0.0",
          "manifest_version": 3,
          "icons": {
            "128": "icon.png"
          },
          "action": {
            "default_popup": "popup.html"
          },
           "content_scripts": [ {
              "js": [ "play video in gmail.js" ],
              "matches": [ "https://mail.google.com/*" ],
              "run_at": "document_start"
           } ]
        }
        
        מוטי אורןמ מנותק
        מוטי אורןמ מנותק
        מוטי אורן
        כתב ב נערך לאחרונה על ידי
        #4

        @ivrtikshoret מעניין למה הוא לא עובד, אצלי בהזרקה דרך הקונסול עובד מצויין. אבל מה שזכור לי שב - content_script בשדה של js אתה צריך לשים את הנתיב של הקובץ סקריפט. לא? (אני מקווה שאני צודק כי לא כל כך התעסקתי עם תוספים)

        רחמיםר I 2 תגובות תגובה אחרונה
        1
        • מוטי אורןמ מוטי אורן

          @ivrtikshoret מעניין למה הוא לא עובד, אצלי בהזרקה דרך הקונסול עובד מצויין. אבל מה שזכור לי שב - content_script בשדה של js אתה צריך לשים את הנתיב של הקובץ סקריפט. לא? (אני מקווה שאני צודק כי לא כל כך התעסקתי עם תוספים)

          רחמיםר מנותק
          רחמיםר מנותק
          רחמים
          מורחק
          כתב ב נערך לאחרונה על ידי
          #5

          @מוטי-אורן אולי בגלל רווחים בשם הקובץ JS

          I תגובה 1 תגובה אחרונה
          1
          • מוטי אורןמ מוטי אורן

            @ivrtikshoret מעניין למה הוא לא עובד, אצלי בהזרקה דרך הקונסול עובד מצויין. אבל מה שזכור לי שב - content_script בשדה של js אתה צריך לשים את הנתיב של הקובץ סקריפט. לא? (אני מקווה שאני צודק כי לא כל כך התעסקתי עם תוספים)

            I מנותק
            I מנותק
            ivrtikshoret
            כתב ב נערך לאחרונה על ידי
            #6

            @מוטי-אורן
            אה צודק גם אצלי עובד אם אני מריץ את זה דרך הקונסול אולי צריך לכתוב משהו במנפיסט בכדי שזה יעבוד דרך התוסף
            מישהו יודע מה צריך להוסיף?

            מוטי אורןמ תגובה 1 תגובה אחרונה
            0
            • רחמיםר רחמים

              @מוטי-אורן אולי בגלל רווחים בשם הקובץ JS

              I מנותק
              I מנותק
              ivrtikshoret
              כתב ב נערך לאחרונה על ידי ivrtikshoret
              #7

              @רחמים
              אין שום בעיה בלשים בשם הקובץ רווחים מנסיון
              וכן אין צורך לכתוב נתיב כי הקובץ נמצא בתיקייה הראשית של הפרוייקט

              מוטי אורןמ תגובה 1 תגובה אחרונה
              1
              • I ivrtikshoret

                @מוטי-אורן
                אה צודק גם אצלי עובד אם אני מריץ את זה דרך הקונסול אולי צריך לכתוב משהו במנפיסט בכדי שזה יעבוד דרך התוסף
                מישהו יודע מה צריך להוסיף?

                מוטי אורןמ מנותק
                מוטי אורןמ מנותק
                מוטי אורן
                כתב ב נערך לאחרונה על ידי מוטי אורן
                #8

                @ivrtikshoret אתה צריך לתת הרשאות permissions, שאני לא זוכר כל כך מה בדיוק אבל אני ינסה לבדוק את זה עוד רגע.

                תגובה 1 תגובה אחרונה
                1
                • I ivrtikshoret

                  @רחמים
                  אין שום בעיה בלשים בשם הקובץ רווחים מנסיון
                  וכן אין צורך לכתוב נתיב כי הקובץ נמצא בתיקייה הראשית של הפרוייקט

                  מוטי אורןמ מנותק
                  מוטי אורןמ מנותק
                  מוטי אורן
                  כתב ב נערך לאחרונה על ידי
                  #9

                  @ivrtikshoret אוקיי. דבר ראשון, אני רואה שכן צריך את הנתיב לקובץ ה-JS.

                  דבר שני, צריך להוציא את run_at מה-content_script, רק אז זה עובד (האמת שלא ברור לי עדיין למה זה ככה),

                  דבר שלישי, בסקריפט עצמו, אם נשאר בקוד שכתבת זה לא יספיק כי התפיסה של האלמנטים נעשית כשהמייל נטען, ומה שקורה זה שלוקח כמה שניות עד שבכלל האלמנט עם הקלאס "aQw" קיים בדף, והסקריפט הספיק כבר להיטען לפני.
                  אז מה שצריך לעשות זה לעשות setTimeout לכמה שניות, אבל אני חושב שזה לא חכם.
                  לדעתי עדיף להוסיף eventListener או משהו כזה, שברגע שנכנסים להודעה כל שהיא, רק אז הסקריפט ירוץ. לא יודע צריך לחשוב מה אפשר לעשות עם זה.

                  I תגובה 1 תגובה אחרונה
                  2
                  • מוטי אורןמ מוטי אורן

                    @ivrtikshoret אוקיי. דבר ראשון, אני רואה שכן צריך את הנתיב לקובץ ה-JS.

                    דבר שני, צריך להוציא את run_at מה-content_script, רק אז זה עובד (האמת שלא ברור לי עדיין למה זה ככה),

                    דבר שלישי, בסקריפט עצמו, אם נשאר בקוד שכתבת זה לא יספיק כי התפיסה של האלמנטים נעשית כשהמייל נטען, ומה שקורה זה שלוקח כמה שניות עד שבכלל האלמנט עם הקלאס "aQw" קיים בדף, והסקריפט הספיק כבר להיטען לפני.
                    אז מה שצריך לעשות זה לעשות setTimeout לכמה שניות, אבל אני חושב שזה לא חכם.
                    לדעתי עדיף להוסיף eventListener או משהו כזה, שברגע שנכנסים להודעה כל שהיא, רק אז הסקריפט ירוץ. לא יודע צריך לחשוב מה אפשר לעשות עם זה.

                    I מנותק
                    I מנותק
                    ivrtikshoret
                    כתב ב נערך לאחרונה על ידי
                    #10

                    @מוטי-אורן
                    אוקיי דבר ראשון אכן הצלחתי לעשות את זה עם setTimeout
                    ואכן מחקתי את run_at
                    אבל למה לא נכון לעבוד עם setTimeout ?

                    מוטי אורןמ תגובה 1 תגובה אחרונה
                    0
                    • I ivrtikshoret

                      @מוטי-אורן
                      אוקיי דבר ראשון אכן הצלחתי לעשות את זה עם setTimeout
                      ואכן מחקתי את run_at
                      אבל למה לא נכון לעבוד עם setTimeout ?

                      מוטי אורןמ מנותק
                      מוטי אורןמ מנותק
                      מוטי אורן
                      כתב ב נערך לאחרונה על ידי
                      #11

                      @ivrtikshoret אמר בהזרקת כפתור ב gmail:

                      אבל למה לא נכון לעבוד עם setTimeout ?

                      כך נראה לי מכמה סיבות. סיבה א': אם לצורך העניין הגדרת את ה-setTimeout ל-3 שניות ויבוא מישהו שהאינטרנט שלו איטי ולוקח למייל שלו 10 שניות לעלות, במקרה כזה זה לא יעבוד.
                      ואם בכל זאת תעשה setTimeout של 15 שניות לצורך העניין למקרה הכי קיצוני (שעדיין אני חושב שיכול להיות יותר מזה), אז משתמש קלאסי יצטרך לחכות עד שהתוסף שלך יעבוד.
                      סיבה ב': מה קורה עם שמת setTimeout אפילו של 2 דקות, שזה אמור לעבוד בכל מקרה (כמובן שהמשתמש ייצטרך קצת להתייבש מול המסך), ולקח למשתמש 10 דקות עד שהוא נכנס להודעה שיש בה סרטון, שאז ה-setTimeout כבר מזמן לא פעיל.
                      וכמובן מה יעשה אותו משתמש מסכן אם הוא בכל זאת נכנס מיד להודעה שמכילה סרטון אבל יצא ממנה ונכנס להודעה ב' שגם לה מצורף סרטון.
                      סיבה ג': setTimeout בכללי לא מומלצת ומשתמשים בה רק לדברים מסויימים, כי מה שידוע לי היא פוגעת בביצועים ויוצרת בעיות זיכרון.
                      אקיצער, אם אתה רוצה לכתוב תוסף טוב לעניין הזה, תצטרך להאזין לאירוע של הכניסה להודעה, ובכל פעם כזאת להפעיל את הסקריפט הנ"ל.

                      תגובה 1 תגובה אחרונה
                      6
                      • dovidD dovid העביר נושא זה מ-תכנות ב-
                      תגובה
                      • תגובה כנושא
                      התחברו כדי לפרסם תגובה
                      • מהישן לחדש
                      • מהחדש לישן
                      • הכי הרבה הצבעות


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

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

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