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

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

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

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

מתוזמן נעוץ נעול הועבר תכנות
6 פוסטים 2 כותבים 281 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • 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
    • dovidD מחובר
      dovidD מחובר
      dovid ניהול
      השיב לone1010 ב נערך לאחרונה על ידי dovid
      #2

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

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      O 2 תגובות תגובה אחרונה
      1
      • O מנותק
        O מנותק
        one1010
        השיב לdovid ב נערך לאחרונה על ידי
        #3

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

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

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

        dovidD תגובה 1 תגובה אחרונה
        0
        • dovidD מחובר
          dovidD מחובר
          dovid ניהול
          השיב לone1010 ב נערך לאחרונה על ידי
          #4

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

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

          לא.

          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

          בכל נושא אפשר ליצור קשר dovid@tchumim.com

          תגובה 1 תגובה אחרונה
          1
          • O מנותק
            O מנותק
            one1010
            השיב לdovid ב נערך לאחרונה על ידי
            #5

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

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

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

            dovidD תגובה 1 תגובה אחרונה
            0
            • dovidD מחובר
              dovidD מחובר
              dovid ניהול
              השיב לone1010 ב נערך לאחרונה על ידי
              #6

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

              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

              בכל נושא אפשר ליצור קשר dovid@tchumim.com

              תגובה 1 תגובה אחרונה
              0

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

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

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