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

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

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

עזרה בפיתוח תוסף לכרום

מתוזמן נעוץ נעול הועבר תכנות
6 פוסטים 2 כותבים 293 צפיות 2 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • O מנותק
    O מנותק
    one1010
    כתב ב נערך לאחרונה על ידי
    #1

    אני מנסה לבנות תוסף כרום שימלא בצורה אוטומטית ורנדומלית.
    הייעוד של התוסף הוא סה"כ לעזור לקרובת משפחה שעובדת בתכנות ובמקום שבבדיקה היא תצטרך לכתוב שוב ושוב ולמלאות תאים [שם חברה, מייל, כתובת, טלפון ח.פ וכו' וכו'] בלחיצת כפתור הכל יתמלא.
    זה לא אמור להיות עם נתונים אמיתיים אלא רק מילוי רנדומלי.

    יש לי את הקוד הבא:

    // קבועים של הסוגים השונים של השדות
    const selectFields = ["select"];
    const phoneFields = ["phone", "mobile", "tel"];
    const emailFields = ["email"];
    const nameFields = ["name", "fullname", "first_name", "last_name"];
    const companyFields = ["company", "organization"];
    
    // פונקציה למציאת כל השדות בדף
    function getFields() {
      return Array.from(document.querySelectorAll("input, select"));
    }
    
    // פונקציה שיוצרת ערך רנדומלי לפי סוג השדה
    function generateValueForFieldType(fieldType) {
      switch (fieldType) {
        case "text":
          return Math.random().toString(36).substring(2, 15);
        case "email":
          return Math.random().toString(36).substring(2, 15) + "@example.com";
        case "phone":
          return Math.floor(Math.random() * 10000000000).toString();
        case "name":
          const names = ["John", "Jane", "Bob", "Alice", "David", "Sarah"];
          return names[Math.floor(Math.random() * names.length)];
        case "company":
          const companies = ["Google", "Apple", "Microsoft", "Amazon"];
          return companies[Math.floor(Math.random() * companies.length)];
        default:
          return "";
      }
    }
    
    // פונקציה שמילאת את הערך של השדה לפי סוג השדה
    function autofillFields() {
      const fields = getFields();
      fields.forEach((field) => {
        const fieldName = field.getAttribute("name").toLowerCase();
        const fieldType = field.getAttribute("type").toLowerCase();
        const fieldTagName = field.tagName.toLowerCase();
    
        if (selectFields.includes(fieldTagName)) {
          const options = field.querySelectorAll("option");
          const randomOption = options[Math.floor(Math.random() * options.length)];
          randomOption.selected = true;
        } else if (phoneFields.includes(fieldName) || fieldType === "tel") {
          field.value = generateValueForFieldType("phone");
        } else if (emailFields.includes(fieldName)) {
          field.value = generateValueForFieldType("email");
        } else if (nameFields.includes(fieldName)) {
          field.value = generateValueForFieldType("name");
        } else if (companyFields.includes(fieldName)) {
          field.value = generateValueForFieldType("company");
        } else {
          field.value = generateValueForFieldType("text");
        }
      });
    }
    
    // פונקציה שמפעילה את המילוי האוטומטי על כל השדות בדף כשהמשתמש לוחץ על כפתור המילוי האוטומטי
    function onAutofillButtonClick() {
      autofillFields();
    }
    
    // י
    

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

    {
      "manifest_version": 3,
      "name": "0101",
      "version": "1.0",
      "description": "Automatically fills form fields with random data.",
      "permissions": [
        "activeTab",
        "storage"
      ],
      "content_scripts": [
        {
          "matches": [
            "<all_urls>"
          ],
          "js": [
            "0101.js"
          ]
        }
      ]
    }
    
    

    אבל התוסף לא עושה שום פעולה. איפה הבעיה? במה טעיתי?

    dovidD תגובה 1 תגובה אחרונה
    0
    • O one1010

      אני מנסה לבנות תוסף כרום שימלא בצורה אוטומטית ורנדומלית.
      הייעוד של התוסף הוא סה"כ לעזור לקרובת משפחה שעובדת בתכנות ובמקום שבבדיקה היא תצטרך לכתוב שוב ושוב ולמלאות תאים [שם חברה, מייל, כתובת, טלפון ח.פ וכו' וכו'] בלחיצת כפתור הכל יתמלא.
      זה לא אמור להיות עם נתונים אמיתיים אלא רק מילוי רנדומלי.

      יש לי את הקוד הבא:

      // קבועים של הסוגים השונים של השדות
      const selectFields = ["select"];
      const phoneFields = ["phone", "mobile", "tel"];
      const emailFields = ["email"];
      const nameFields = ["name", "fullname", "first_name", "last_name"];
      const companyFields = ["company", "organization"];
      
      // פונקציה למציאת כל השדות בדף
      function getFields() {
        return Array.from(document.querySelectorAll("input, select"));
      }
      
      // פונקציה שיוצרת ערך רנדומלי לפי סוג השדה
      function generateValueForFieldType(fieldType) {
        switch (fieldType) {
          case "text":
            return Math.random().toString(36).substring(2, 15);
          case "email":
            return Math.random().toString(36).substring(2, 15) + "@example.com";
          case "phone":
            return Math.floor(Math.random() * 10000000000).toString();
          case "name":
            const names = ["John", "Jane", "Bob", "Alice", "David", "Sarah"];
            return names[Math.floor(Math.random() * names.length)];
          case "company":
            const companies = ["Google", "Apple", "Microsoft", "Amazon"];
            return companies[Math.floor(Math.random() * companies.length)];
          default:
            return "";
        }
      }
      
      // פונקציה שמילאת את הערך של השדה לפי סוג השדה
      function autofillFields() {
        const fields = getFields();
        fields.forEach((field) => {
          const fieldName = field.getAttribute("name").toLowerCase();
          const fieldType = field.getAttribute("type").toLowerCase();
          const fieldTagName = field.tagName.toLowerCase();
      
          if (selectFields.includes(fieldTagName)) {
            const options = field.querySelectorAll("option");
            const randomOption = options[Math.floor(Math.random() * options.length)];
            randomOption.selected = true;
          } else if (phoneFields.includes(fieldName) || fieldType === "tel") {
            field.value = generateValueForFieldType("phone");
          } else if (emailFields.includes(fieldName)) {
            field.value = generateValueForFieldType("email");
          } else if (nameFields.includes(fieldName)) {
            field.value = generateValueForFieldType("name");
          } else if (companyFields.includes(fieldName)) {
            field.value = generateValueForFieldType("company");
          } else {
            field.value = generateValueForFieldType("text");
          }
        });
      }
      
      // פונקציה שמפעילה את המילוי האוטומטי על כל השדות בדף כשהמשתמש לוחץ על כפתור המילוי האוטומטי
      function onAutofillButtonClick() {
        autofillFields();
      }
      
      // י
      

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

      {
        "manifest_version": 3,
        "name": "0101",
        "version": "1.0",
        "description": "Automatically fills form fields with random data.",
        "permissions": [
          "activeTab",
          "storage"
        ],
        "content_scripts": [
          {
            "matches": [
              "<all_urls>"
            ],
            "js": [
              "0101.js"
            ]
          }
        ]
      }
      
      

      אבל התוסף לא עושה שום פעולה. איפה הבעיה? במה טעיתי?

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

      @one1010 לא הבנתי מי אמור להפעיל את הפונקציה onAutofillButtonClick.
      כל עוד היא לא מופעלת אכן לא יקרה כלום.
      נ.ב. הקוד מאוד יפה.

      • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
      • בכל נושא אפשר ליצור קשר dovid@tchumim.com
      O 2 תגובות תגובה אחרונה
      1
      • dovidD dovid

        @one1010 לא הבנתי מי אמור להפעיל את הפונקציה onAutofillButtonClick.
        כל עוד היא לא מופעלת אכן לא יקרה כלום.
        נ.ב. הקוד מאוד יפה.

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

        @dovid כתב בעזרה בפיתוח תוסף לכרום:

        לא הבנתי מי אמור להפעיל את הפונקציה onAutofillButtonClick.

        זה אמור להיות הפעלה ידנית של המשתמש ע"י לחיצה על התוסף. לא?!

        dovidD תגובה 1 תגובה אחרונה
        0
        • O one1010

          @dovid כתב בעזרה בפיתוח תוסף לכרום:

          לא הבנתי מי אמור להפעיל את הפונקציה onAutofillButtonClick.

          זה אמור להיות הפעלה ידנית של המשתמש ע"י לחיצה על התוסף. לא?!

          dovidD מנותק
          dovidD מנותק
          dovid
          ניהול
          כתב ב נערך לאחרונה על ידי
          #4

          @one1010 כתב בעזרה בפיתוח תוסף לכרום:

          זה אמור להיות הפעלה ידנית של המשתמש ע"י לחיצה על התוסף. לא?!

          לא.

          • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
          • בכל נושא אפשר ליצור קשר dovid@tchumim.com
          תגובה 1 תגובה אחרונה
          1
          • dovidD dovid

            @one1010 לא הבנתי מי אמור להפעיל את הפונקציה onAutofillButtonClick.
            כל עוד היא לא מופעלת אכן לא יקרה כלום.
            נ.ב. הקוד מאוד יפה.

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

            @dovid כתב בעזרה בפיתוח תוסף לכרום:

            לא הבנתי מי אמור להפעיל את הפונקציה onAutofillButtonClick.

            האמת היא שהסתבכתי עם זה קצת...
            מה אני צריך לשנות בקוד כדי שהמילוי האוטומטי יופעל על ידי לחיצה על התוסף?

            dovidD תגובה 1 תגובה אחרונה
            0
            • O one1010

              @dovid כתב בעזרה בפיתוח תוסף לכרום:

              לא הבנתי מי אמור להפעיל את הפונקציה onAutofillButtonClick.

              האמת היא שהסתבכתי עם זה קצת...
              מה אני צריך לשנות בקוד כדי שהמילוי האוטומטי יופעל על ידי לחיצה על התוסף?

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

              @one1010 אתה צריך לעשות כמה צעדים.
              https://developer.chrome.com/docs/extensions/reference/action/#injecting-a-content-script-on-click

              • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
              • בכל נושא אפשר ליצור קשר dovid@tchumim.com
              תגובה 1 תגובה אחרונה
              0
              תגובה
              • תגובה כנושא
              התחברו כדי לפרסם תגובה
              • מהישן לחדש
              • מהחדש לישן
              • הכי הרבה הצבעות


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

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

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