דילוג לתוכן
  • חוקי הפורום
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
לוגו מותג
  1. דף הבית
  2. קטגוריות בהרצה
  3. תכנות
  4. בינה מלאכותית - AI
  5. עזרה הדדית - בינה מלאכותית
  6. המלצה | קוד ל tampermonkey לאימוג'ים שמתאימים עצמם אוטומטית לטקסט שלך

המלצה | קוד ל tampermonkey לאימוג'ים שמתאימים עצמם אוטומטית לטקסט שלך

מתוזמן נעוץ נעול הועבר נפתר עזרה הדדית - בינה מלאכותית
76 פוסטים 9 כותבים 1.3k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • מ מנותק
    מ מנותק
    מים אחרונים
    כתב נערך לאחרונה על ידי מים אחרונים
    #1

    אוקי, הקוד נוצר ע"י בינה מלאכותי, כנ"ל גם הפוסט הזה 🙂
    אבל הוא מדהים! נסו את זה!
    📢 תוסף "אימוג'י חכם" לכתיבה מהירה ומרגשת!
    כמה פעמים רצית להוסיף טאצ' רגשי קטן למייל, תגובה או פוסט – אבל לא היה לך זמן לחפש את האימוג'י המושלם?
    מעכשיו זה קל מתמיד!

    ✅ בכל פעם שתקליד ביטוי מרגש (כמו "תודה רבה", "כל הכבוד", "חג שמח"), תופיע לך תיבת הצעה קטנה בצד – בלחיצה אחת האימוג'י ישתלב ישירות במקום שבו אתה מקליד.

    ✅ התוסף מתאים את עצמו לשדות רגילים (input, textarea) וגם לשדות מיוחדים במיילים, פורומים ומערכות מתקדמות (contentEditable).

    ✅ האימוג'ים לא סתם אייקונים, אלא מותאמים בדיוק לרוח ההודעה שלך, כדי שהנמען ירגיש את הלב שבין המילים ❤️.

    איך משתמשים?

    מתקינים את התוסף (Tampermonkey).

    מוסיפים את הקוד שלנו.

    מתחילים להקליד כרגיל – והמגע המיוחד פשוט קורה מעצמו ✨.

    למה זה חשוב?
    בעידן דיגיטלי קריר, מחווה קטנה – כמו אימוג'י מתאים – יכולה לעשות את כל ההבדל.
    לשדר חמימות, רגש, חיוך – וכל זה בלי להפריע לזרימת הכתיבה.

    🛠️ בקרוב נוסיף עוד פיצ'רים חכמים:

    התאמה אישית של אימוג'ים לפי סגנון אישי.

    אפשרות לבחור כמה הצעות שתרצה.

    תמיכה במערכות מורכבות עוד יותר.
    הקוד:

    // ==UserScript==
    // @name         Emoji Suggestion Helper for Mail and Forums
    // @namespace    http://tampermonkey.net/
    // @version      0.5
    // @description  מציע אימוג'י לשדות טקסט, כולל מיילים ופורומים, ומכניס אותו במקום הקורסור
    // @author       You
    // @match        *://*/*
    // @grant        none
    // ==/UserScript==
    
    (function() {
        'use strict';
    
        let lastTarget = null;
    
        const emojiSuggestions = {
        "תודה רבה": "🙏",
        "בהצלחה": "🍀",
        "יום טוב": "☀️",
        "לילה טוב": "🌙",
        "חג שמח": "🎉",
        "כל הכבוד": "👏",
        "מחזיק לך אצבעות": "🤞",
        "אוהב אותך": "❤️",
        "שמח בשבילך": "🥰",
        "מתרגש מאוד": "🤩",
        "גאה בך": "🥹",
        "אין מילים": "🤯",
        "זה מדהים": "😲",
        "שומר על קשר": "📞",
        "שולח חיבוק": "🤗",
        "הכל יסתדר בעזרת השם": "🙌",
        "מתגעגע": "🥲",
        "סומך עליך": "👍",
        "אלוף": "🏆",
        "גיבור": "🦸",
        "חזק ואמץ": "💪",
        "מתפלל בשבילך": "✡️",
        "אמן כן יהי רצון": "🙏",
        "עלה והצלח": "🚀",
        "שמור על עצמך": "🛡️",
        "הלוואי וכל חלומותיך יתגשמו": "✨",
        "מקווה לטוב": "🍀",
        "הכל בזמנו": "⏳",
        "איזה יופי": "😍",
        "מחכה לעדכון": "📝",
        "עוקב מקרוב": "👀",
        "חיבוק גדול": "🫂",
        "מאחל הצלחה": "🍀"
        };
    
        // יצירת תיבת הצעה
        const suggestionBox = document.createElement('div');
        suggestionBox.style.position = 'fixed';
        suggestionBox.style.bottom = '20px';
        suggestionBox.style.right = '20px';
        suggestionBox.style.background = '#f0f0f0';
        suggestionBox.style.padding = '10px';
        suggestionBox.style.border = '1px solid #ccc';
        suggestionBox.style.borderRadius = '8px';
        suggestionBox.style.display = 'none';
        suggestionBox.style.fontSize = '24px';
        suggestionBox.style.zIndex = 9999;
        suggestionBox.style.cursor = 'pointer';
        document.body.appendChild(suggestionBox);
    
        // זיהוי אם שדה הוא חיפוש
        function isSearchField(element) {
            return element.type === 'search' || (element.className && element.className.toLowerCase().includes('search'));
        }
    
        // הכנסת אימוג'י בשדה הטקסט
        function insertEmojiAtCursor(emoji) {
            if (!lastTarget) return;
            if (lastTarget.isContentEditable) {
                const range = document.getSelection().getRangeAt(0);
                range.deleteContents();
                range.insertNode(document.createTextNode(emoji));
            } else if (lastTarget instanceof HTMLTextAreaElement || lastTarget instanceof HTMLInputElement) {
                const start = lastTarget.selectionStart;
                const end = lastTarget.selectionEnd;
                const text = lastTarget.value;
                lastTarget.value = text.slice(0, start) + emoji + text.slice(end);
                lastTarget.selectionStart = lastTarget.selectionEnd = start + emoji.length;
            }
            suggestionBox.style.display = 'none'; // להעלים את התיבה אחרי ההוספה
            lastTarget.focus(); // להחזיר פוקוס לשדה
        }
    
        // טיפול בהקלדה
        function handleInput(event) {
            const target = event.target;
            if (!(target instanceof HTMLInputElement || target instanceof HTMLTextAreaElement || target.isContentEditable)) {
                return;
            }
            if (isSearchField(target)) {
                return;
            }
    
            lastTarget = target;
            const text = target.value || target.innerText || '';
    
            // יש לבדוק גם אם מדובר בטקסט עשיר בשדות כאלו
            for (const phrase in emojiSuggestions) {
                if (text.includes(phrase)) {
                    suggestionBox.innerText = emojiSuggestions[phrase];
                    suggestionBox.style.display = 'block';
                    return;
                }
            }
            suggestionBox.style.display = 'none';
        }
    
        // מאזינים
        document.addEventListener('input', handleInput, true);
    
        // לחיצה על התיבה תכניס את האימוג'י
        suggestionBox.addEventListener('click', function() {
            if (suggestionBox.innerText) {
                insertEmojiAtCursor(suggestionBox.innerText);
            }
        });
    })();
    

    בהצלחה, תעדכנו אותי על באגים, או נסו לטפל בהם לבד...

    א ע עדלאידעע שמואל ש.ש 5 תגובות תגובה אחרונה
    18
    • מ מנותק
      מ מנותק
      מים אחרונים
      כתב נערך לאחרונה על ידי
      #19

      עכשיו עובד גם בתגובות
      זה מדהים😲
      מתרגש מאוד🤩
      האימוג'י קופץ בסמוך למיקום העכבר.

      // ==UserScript==
      // @name         Emoji Suggestion (Dynamic & Persistent)
      // @namespace    http://tampermonkey.net/
      // @version      1.0
      // @description  מציע אימוג'י לפי הקלדה, תומך בשדות רגילים ו-contentEditable, נשמר בדפדפן ומופיע ליד הקורסור
      // @author       ChatGPT + User
      // @match        *://*/*
      // @grant        none
      // ==/UserScript==
      
      (function () {
          'use strict';
      
          const emojiSuggestions = {
              "תודה רבה": "🙏",
              "בהצלחה": "🍀",
              "יום טוב": "☀️",
              "לילה טוב": "🌙",
              "חג שמח": "🎉",
              "כל הכבוד": "👏",
              "מחזיק לך אצבעות": "🤞",
              "אוהב אותך": "❤️",
              "שמח בשבילך": "🥰",
              "מתרגש מאוד": "🤩",
              "גאה בך": "🥹",
              "אין מילים": "🤯",
              "זה מדהים": "😲",
              "שומר על קשר": "📞",
              "שולח חיבוק": "🤗",
              "הכל יסתדר בעזרת השם": "🙌",
              "מתגעגע": "🥲",
              "סומך עליך": "👍",
              "אלוף": "🏆",
              "גיבור": "🦸",
              "חזק ואמץ": "💪",
              "מתפלל בשבילך": "✡️",
              "אמן כן יהי רצון": "🙏",
              "עלה והצלח": "🚀",
              "שמור על עצמך": "🛡️",
              "הלוואי וכל חלומותיך יתגשמו": "✨",
              "מקווה לטוב": "🍀",
              "הכל בזמנו": "⏳",
              "איזה יופי": "😍",
              "מחכה לעדכון": "📝",
              "עוקב מקרוב": "👀",
              "חיבוק גדול": "🫂",
              "מאחל הצלחה": "🍀"
          };
      
          let lastTarget = null;
          let mouseX = 0, mouseY = 0;
      
          // יצירת תיבת ההצעה
          const suggestionBox = document.createElement('div');
          suggestionBox.style.position = 'fixed';
          suggestionBox.style.background = '#ffffff';
          suggestionBox.style.padding = '4px 8px';
          suggestionBox.style.border = '1px solid #ccc';
          suggestionBox.style.borderRadius = '6px';
          suggestionBox.style.fontSize = '18px';
          suggestionBox.style.zIndex = 999999;
          suggestionBox.style.boxShadow = '0 2px 6px rgba(0,0,0,0.15)';
          suggestionBox.style.display = 'none';
          suggestionBox.style.cursor = 'pointer';
          suggestionBox.style.userSelect = 'none';
          document.body.appendChild(suggestionBox);
      
          // שמירת אימוג'ים שהוצעו ונבחרו לאחרונה
          const storageKey = 'emoji_recent';
          let recentEmojis = JSON.parse(localStorage.getItem(storageKey) || '[]');
      
          function saveRecent(phrase) {
              recentEmojis.push({ phrase, time: Date.now() });
              recentEmojis = recentEmojis.filter((e, i, arr) => {
                  // שמור רק את 30 האחרונים או כאלו מהיום האחרון
                  return arr.length - i <= 30 || (Date.now() - e.time < 86400000);
              });
              localStorage.setItem(storageKey, JSON.stringify(recentEmojis));
          }
      
          function wasRecentlyUsed(phrase) {
              return recentEmojis.some(e => e.phrase === phrase && (Date.now() - e.time < 60000)); // 1 דקה
          }
      
          // הכנסת אימוג'י
          function insertEmoji(emoji) {
              if (!lastTarget) return;
      
              if (lastTarget.isContentEditable) {
                  const selection = document.getSelection();
                  if (!selection.rangeCount) return;
                  const range = selection.getRangeAt(0);
                  range.deleteContents();
                  range.insertNode(document.createTextNode(emoji));
              } else if (lastTarget instanceof HTMLTextAreaElement || lastTarget instanceof HTMLInputElement) {
                  const start = lastTarget.selectionStart;
                  const end = lastTarget.selectionEnd;
                  const text = lastTarget.value;
                  lastTarget.value = text.slice(0, start) + emoji + text.slice(end);
                  lastTarget.selectionStart = lastTarget.selectionEnd = start + emoji.length;
              }
      
              suggestionBox.style.display = 'none';
              lastTarget.focus();
          }
      
          suggestionBox.addEventListener('click', function () {
              const emoji = suggestionBox.innerText.trim();
              if (emoji) {
                  insertEmoji(emoji);
                  saveRecent(suggestionBox.dataset.phrase);
              }
          });
      
          document.addEventListener('input', function (e) {
              const target = e.target;
              if (!(target instanceof HTMLInputElement || target instanceof HTMLTextAreaElement || target.isContentEditable)) {
                  return;
              }
              lastTarget = target;
      
              const text = target.value || target.innerText || '';
              for (const phrase in emojiSuggestions) {
                  if (text.includes(phrase) && !wasRecentlyUsed(phrase)) {
                      suggestionBox.innerText = emojiSuggestions[phrase];
                      suggestionBox.dataset.phrase = phrase;
                      suggestionBox.style.left = (mouseX + 10) + 'px';
                      suggestionBox.style.top = (mouseY + 10) + 'px';
                      suggestionBox.style.display = 'block';
                      return;
                  }
              }
              suggestionBox.style.display = 'none';
          }, true);
      
          document.addEventListener('mousemove', function (e) {
              mouseX = e.clientX;
              mouseY = e.clientY;
          });
      })();
      
      
      ב תגובה 1 תגובה אחרונה
      1
      • א מנותק
        א מנותק
        א.ל 0
        השיב למים אחרונים נערך לאחרונה על ידי
        #2

        @מים-אחרונים ניסיתי, הוא רק מראה לי את האימוג'י אבל בלחיצה עליו הוא לא מתווסף

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

          @א-ל-0 כתב בהמלצה | קוד ל tampermonkey לאימוג'ים מותאמים לטקסט:

          @מים-אחרונים ניסיתי, הוא רק מראה לי את האימוג'י אבל בלחיצה עליו הוא לא מתווסף

          שלח את ההודעה ותראה שהוא מתווסף, רק בתצוגה מקדימה הוא לא עובד
          בהצלחה🍀

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

            @מים-אחרונים איפה שמת קישור לתוסף?

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

              @עזיז זה קוד ל tampermonkey
              אני בדיוק מחפש את המדריך שכתב כאן מישהו.
              אולי @יוסף-אלחנן ידע?
              זה בכל מקרה הקישור להתקנת הבסיס מכרום
              https://chromewebstore.google.com/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo

              יוסף אלחנןי תגובה 1 תגובה אחרונה
              0
              • יוסף אלחנןי מחובר
                יוסף אלחנןי מחובר
                יוסף אלחנן מדריכים
                השיב למים אחרונים נערך לאחרונה על ידי יוסף אלחנן
                #6

                @מים-אחרונים ל @עדלאידע יש מדריך מעולה.
                עיין כאן

                תגובה 1 תגובה אחרונה
                2
                • עדלאידעע מנותק
                  עדלאידעע מנותק
                  עדלאידע מדריכים
                  השיב למים אחרונים נערך לאחרונה על ידי עדלאידע
                  #7

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

                  וגם כדאי להוסיף כמה מילים שיביאו לאותו אימוג'י, הייתי ממליץ שיהיה גם את השם של האימוג'י עצמו וגם כמה צמדי מילים שקשורים אליו, לדוג':

                  "שעון חול": "⏳",
                  "הכל בזמנו": "⏳",
                  "כמה דקות": "⏳",
                  
                  מ תגובה 1 תגובה אחרונה
                  2
                  • מ מנותק
                    מ מנותק
                    מים אחרונים
                    השיב לעדלאידע נערך לאחרונה על ידי
                    #8

                    @עדלאידע צריך להקים מאגר פשוט כזה.

                    תגובה 1 תגובה אחרונה
                    1
                    • מ מנותק
                      מ מנותק
                      מים אחרונים
                      כתב נערך לאחרונה על ידי
                      #9

                      @עדלאידע איך אני מעדכן אותו אוטומטית מגיט?

                      עדלאידעע תגובה 1 תגובה אחרונה
                      0
                      • עדלאידעע מנותק
                        עדלאידעע מנותק
                        עדלאידע מדריכים
                        השיב למים אחרונים נערך לאחרונה על ידי
                        #10

                        @מים-אחרונים כתב בהמלצה | קוד ל tampermonkey לאימוג'ים מותאמים לטקסט:

                        איך אני מעדכן אותו אוטומטית מגיט?

                        אתה מתכוון מגיטאהב כנראה...

                        אתה מעלה את הסקריפט לגיטאהב, ומוסיף במטא-דאטה של הסקריפט את השורה:

                        //@updateURL
                        

                        עם ה-URL של הסקריפט בגיטאהב,
                        ואז כל פעם שאתה עורך את הסקריפט בגיטאהב ומעלה את הערך של:

                        // @version
                        

                        הסקריפט מתעדכן אוטומטית אצל המשתמשים.

                        תגובה 1 תגובה אחרונה
                        1
                        • עדלאידעע מנותק
                          עדלאידעע מנותק
                          עדלאידע מדריכים
                          השיב למים אחרונים נערך לאחרונה על ידי
                          #11

                          @מים-אחרונים אני ממליץ למחוק את הפונקציה handleInput (שורות 91-112) ולכתוב במקום:

                          function handleInput(event) {
                                  const target = event.target;
                                  if (!(target instanceof HTMLInputElement || target instanceof HTMLTextAreaElement || target.isContentEditable)) {
                                      return;
                                  }
                                  if (isSearchField(target)) {
                                      suggestionBox.style.display = 'none';
                                      return;
                                  }
                          
                                  lastTarget = target;
                                  const text = target.value !== undefined ? target.value : target.innerText || '';
                          
                                  let foundEmoji = null;
                          
                                  for (const emoji in emojiSuggestions) {
                                      if (Object.prototype.hasOwnProperty.call(emojiSuggestions, emoji)) {
                                          const phrases = emojiSuggestions[emoji];
                                          for (let i = 0; i < phrases.length; i++) {
                                              const phrase = phrases[i];
                                              if (text.includes(phrase)) {
                                                  foundEmoji = emoji;
                                                  break;
                                              }
                                          }
                                          if (foundEmoji) {
                                              break;
                                          }
                                      }
                                  }
                          
                                  if (foundEmoji) {
                                      suggestionBox.innerText = foundEmoji;
                                      suggestionBox.style.display = 'block';
                                  } else {
                                      suggestionBox.style.display = 'none';
                                  }
                              }
                          

                          ועכשיו את המשתנה emojiSuggestions (שורות 16-50) שמכיל את הטקסטים של האימוג'ים אתה יכול לשנות ל:

                              const emojiSuggestions = {
                                  "🙏": ["תודה רבה", "אמן כן יהי רצון"],
                                  "🍀": ["בהצלחה", "מקווה לטוב", "מאחל הצלחה"],
                                  "☀️": ["יום טוב"],
                                  "🌙": ["לילה טוב"],
                                  "🎉": ["חג שמח"],
                                  "👏": ["כל הכבוד"],
                                  "🤞": ["מחזיק לך אצבעות"],
                                  "❤️": ["אוהב אותך"],
                                  "🥰": ["שמח בשבילך"],
                                  "🤩": ["מתרגש מאוד"],
                                  "🥹": ["גאה בך"],
                                  "🤯": ["אין מילים"],
                                  "😲": ["זה מדהים"],
                                  "📞": ["שומר על קשר"],
                                  "🤗": ["שולח חיבוק"],
                                  "🙌": ["הכל יסתדר בעזרת השם"],
                                  "🥲": ["מתגעגע"],
                                  "👍": ["סומך עליך"],
                                  "🏆": ["אלוף"],
                                  "🦸": ["גיבור"],
                                  "💪": ["חזק ואמץ"],
                                  "✡️": ["מתפלל בשבילך"],
                                  "🚀": ["עלה והצלח"],
                                  "🛡️": ["שמור על עצמך"],
                                  "✨": ["הלוואי וכל חלומותיך יתגשמו"],
                                  "⏳": ["הכל בזמנו"],
                                  "😍": ["איזה יופי"],
                                  "📝": ["מחכה לעדכון"],
                                  "👀": ["עוקב מקרוב"],
                                  "🫂": ["חיבוק גדול"]
                              };
                          

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


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

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

                            @עדלאידע אשתדל לטפל בזה, אתה מתכנת רשמי? או ב AI?

                            צריך לעשות תגית כזו כמו קבוצה של מתכנתי AI

                            עדלאידעע תגובה 1 תגובה אחרונה
                            0
                            • עדלאידעע מנותק
                              עדלאידעע מנותק
                              עדלאידע מדריכים
                              השיב למים אחרונים נערך לאחרונה על ידי
                              #13

                              @מים-אחרונים אני יודע JS מעולה, אבל נעזר הרבה ב-AI בשביל לחסוך זמן ומאמץ.

                              צריך לעשות תגית כזו כמו קבוצה של מתכנתי AI

                              ואיך בדיוק תמנה אותם לתפקיד?
                              זה לא דבר שאתה יכול לבחון או משהו כזה...
                              למה שמשתמש X יכנס לקבוצה ומשתמש Y לא?

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

                                @עדלאידע יש דרכים אני בטוח, אבל נתווכח על זה בהצעת ייעול כזו אם תקום

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

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

                                  עדלאידעע תגובה 1 תגובה אחרונה
                                  0
                                  • עדלאידעע מנותק
                                    עדלאידעע מנותק
                                    עדלאידע מדריכים
                                    השיב למים אחרונים נערך לאחרונה על ידי
                                    #16

                                    @מים-אחרונים כתב בהמלצה | קוד ל tampermonkey לאימוג'ים שמתאימים עצמם אוטומטית לטקסט שלך:

                                    דרך אגב מה אתה שינית?

                                    עשיתי שבמקום שהסקריפט יחפש התאמה לכל טקסט בנפרד כדי למצוא את האימוג'י שלו,
                                    הוא יבדוק עבור כל אימוג'י, אם הטקסט שהוקלד מכיל את אחד מהביטויים שמופיעים ברשימה שלו,
                                    ככה לא צריך בשביל כל טקסט שמביא לאותו אימוג'י לכתוב שורה נוספת, אלא פשוט מוסיפים אותו למערך של האימוג'י.

                                    תגובה 1 תגובה אחרונה
                                    1
                                    • מ מנותק
                                      מ מנותק
                                      מים אחרונים
                                      כתב נערך לאחרונה על ידי
                                      #17

                                      @עדלאידע עובד עכשיו רק ביצירת נושא חדש, עובד מעולה לפי מה שצריך.
                                      אבל בתגובה על נושא לא עובד בכלל.
                                      בודק.

                                      // ==UserScript==
                                      // @name         Emoji Suggestion Helper (Enhanced)
                                      // @namespace    http://tampermonkey.net/
                                      // @version      0.7
                                      // @description  מציע אימוג'י לפי טקסט סמוך לסמן. תומך בשדות רגילים, פורומים וגוגל צ'אט. תיבת הצעה מופיעה ליד הקורסור ואינה מפריעה להקלדה.
                                      // @author       You
                                      // @match        *://*/*
                                      // @grant        none
                                      // ==/UserScript==
                                      
                                      (function () {
                                          'use strict';
                                      
                                          let lastTarget = null;
                                          let lastCursorPosition = 0;
                                      
                                          const emojiMap = {
                                              "תודה רבה": "🙏",
                                              "בהצלחה": "🍀",
                                              "כל הכבוד": "👏",
                                              "מזל טוב": "🎉",
                                              "אני מתרגש": "🤩",
                                              "אמן כן יהי רצון": "🙏",
                                              "מקווה לטוב": "🍀",
                                              "מאחל הצלחה": "🍀",
                                              "יום טוב": "☀️",
                                              "לילה טוב": "🌙",
                                              "חג שמח": "🎉",
                                              "מחזיק לך אצבעות": "🤞",
                                              "אוהב אותך": "❤️",
                                              "שמח בשבילך": "🥰",
                                              "מתרגש מאוד": "🤩",
                                              "גאה בך": "🥹",
                                              "אין מילים": "🤯",
                                              "זה מדהים": "😲",
                                              "שומר על קשר": "📞",
                                              "שולח חיבוק": "🤗",
                                              "הכל יסתדר בעזרת השם": "🙌",
                                              "מתגעגע": "🥲",
                                              "סומך עליך": "👍",
                                              "אלוף": "🏆",
                                              "גיבור": "🦸",
                                              "חזק ואמץ": "💪",
                                              "מתפלל בשבילך": "✡️",
                                              "עלה והצלח": "🚀",
                                              "שמור על עצמך": "🛡️",
                                              "הלוואי וכל חלומותיך יתגשמו": "✨",
                                              "הכל בזמנו": "⏳",
                                              "איזה יופי": "😍",
                                              "מחכה לעדכון": "📝",
                                              "עוקב מקרוב": "👀",
                                              "חיבוק גדול": "🫂"
                                          };
                                      
                                          // יצירת תיבת ההצעה
                                          const suggestionBox = document.createElement('div');
                                          suggestionBox.style.position = 'absolute';
                                          suggestionBox.style.background = '#f0f0f0';
                                          suggestionBox.style.padding = '6px 10px';
                                          suggestionBox.style.border = '1px solid #ccc';
                                          suggestionBox.style.borderRadius = '8px';
                                          suggestionBox.style.display = 'none';
                                          suggestionBox.style.fontSize = '24px';
                                          suggestionBox.style.zIndex = 9999;
                                          suggestionBox.style.cursor = 'pointer';
                                          suggestionBox.style.boxShadow = '0 2px 5px rgba(0,0,0,0.2)';
                                          suggestionBox.style.transition = 'opacity 0.2s';
                                          document.body.appendChild(suggestionBox);
                                      
                                          suggestionBox.addEventListener('click', () => {
                                              if (suggestionBox.innerText && lastTarget) {
                                                  insertEmojiAtCursor(lastTarget, suggestionBox.innerText);
                                              }
                                          });
                                      
                                          function insertEmojiAtCursor(element, emoji) {
                                              if (element.isContentEditable) {
                                                  const selection = window.getSelection();
                                                  if (!selection.rangeCount) return;
                                                  const range = selection.getRangeAt(0);
                                                  range.deleteContents();
                                                  range.insertNode(document.createTextNode(emoji));
                                                  range.collapse(false);
                                              } else {
                                                  const start = element.selectionStart;
                                                  const end = element.selectionEnd;
                                                  const text = element.value;
                                                  element.value = text.slice(0, start) + emoji + text.slice(end);
                                                  element.selectionStart = element.selectionEnd = start + emoji.length;
                                              }
                                              suggestionBox.style.display = 'none';
                                              element.focus();
                                          }
                                      
                                          function getTextBeforeCursor(el) {
                                              if (el.isContentEditable) {
                                                  const selection = window.getSelection();
                                                  if (!selection.rangeCount) return '';
                                                  const range = selection.getRangeAt(0);
                                                  const preCaretRange = range.cloneRange();
                                                  preCaretRange.selectNodeContents(el);
                                                  preCaretRange.setEnd(range.endContainer, range.endOffset);
                                                  return preCaretRange.toString();
                                              } else {
                                                  return el.value.substring(0, el.selectionStart);
                                              }
                                          }
                                      
                                          function getLastMatchingEmoji(text) {
                                              const maxWords = 6;
                                              const words = text.split(/\s+/);
                                              for (let len = maxWords; len >= 1; len--) {
                                                  const phrase = words.slice(-len).join(' ').trim();
                                                  if (emojiMap[phrase]) return { emoji: emojiMap[phrase], phrase };
                                              }
                                              return null;
                                          }
                                      
                                          function updateSuggestionBox(el, emoji, clientX, clientY) {
                                              suggestionBox.innerText = emoji;
                                              suggestionBox.style.left = (clientX + 10) + 'px';
                                              suggestionBox.style.top = (clientY + 10) + 'px';
                                              suggestionBox.style.display = 'block';
                                          }
                                      
                                          document.addEventListener('input', handleInput, true);
                                          document.addEventListener('keyup', handleInput, true);
                                          document.addEventListener('click', e => {
                                              if (!suggestionBox.contains(e.target)) {
                                                  suggestionBox.style.display = 'none';
                                              }
                                          });
                                      
                                          function handleInput(e) {
                                              const target = e.target;
                                              if (!(target instanceof HTMLInputElement || target instanceof HTMLTextAreaElement || target.isContentEditable)) return;
                                              lastTarget = target;
                                      
                                              // מיקום הקורסור למסך
                                              const rect = target.getBoundingClientRect();
                                              const cursorX = rect.left + (target.selectionEnd ? target.selectionEnd : 0);
                                              const cursorY = rect.top;
                                      
                                              const text = getTextBeforeCursor(target);
                                              const match = getLastMatchingEmoji(text);
                                              if (match) {
                                                  updateSuggestionBox(target, match.emoji, e.clientX || cursorX, e.clientY || cursorY);
                                              } else {
                                                  suggestionBox.style.display = 'none';
                                              }
                                          }
                                      })();
                                      
                                      
                                      מ תגובה 1 תגובה אחרונה
                                      0
                                      • מ מנותק
                                        מ מנותק
                                        מים אחרונים
                                        השיב למים אחרונים נערך לאחרונה על ידי
                                        #18

                                        אוקי
                                        הקוד הבא משום מה לא עובד בתגובות בפורום, לא ניסיתי במקומות נוספים!
                                        עובד ביצירת נושא חדש.
                                        מוסיף לחצן הוספת אימוג'ים מותאמים אישית שנשמרים ב דפדפן באופן מקומי מה קוראים אותו localStorage
                                        בהצלחה (לא עובד האימוג'י)

                                        // ==UserScript==
                                        // @name         Emoji Suggestion Helper + Persistent Manager
                                        // @namespace    http://tampermonkey.net/
                                        // @version      1.2
                                        // @description  מציע אימוג'ים לפי הקלדה + ניהול מותאם אישית + שמירה מקומית + תומך גם בתגובות בפורומים כמו נודביבי.
                                        // @match        *://*/*
                                        // @grant        none
                                        // ==/UserScript==
                                        
                                        (function () {
                                            'use strict';
                                        
                                            let lastTarget = null;
                                        
                                            // טען מהמקום המקומי או ברירת מחדל
                                            let emojiMap = JSON.parse(localStorage.getItem('emojiMap') || '{}');
                                            if (Object.keys(emojiMap).length === 0) {
                                                emojiMap = {
                                                    "תודה רבה": "🙏",
                                                    "בהצלחה": "🍀",
                                                    "כל הכבוד": "👏",
                                                    "מזל טוב": "🎉",
                                                    "אמן כן יהי רצון": "🙏",
                                                    "לילה טוב": "🌙",
                                                    "שולח חיבוק": "🤗",
                                                };
                                                localStorage.setItem('emojiMap', JSON.stringify(emojiMap));
                                            }
                                        
                                            const suggestionBox = document.createElement('div');
                                            Object.assign(suggestionBox.style, {
                                                position: 'absolute',
                                                background: '#fff',
                                                padding: '6px 10px',
                                                border: '1px solid #ccc',
                                                borderRadius: '8px',
                                                display: 'none',
                                                fontSize: '22px',
                                                zIndex: 9999,
                                                cursor: 'pointer',
                                                boxShadow: '0 2px 5px rgba(0,0,0,0.2)',
                                            });
                                            document.body.appendChild(suggestionBox);
                                        
                                            suggestionBox.addEventListener('click', () => {
                                                if (lastTarget) insertEmojiAtCursor(lastTarget, suggestionBox.innerText);
                                            });
                                        
                                            function insertEmojiAtCursor(el, emoji) {
                                                if (el.isContentEditable) {
                                                    const sel = window.getSelection();
                                                    if (!sel.rangeCount) return;
                                                    const range = sel.getRangeAt(0);
                                                    range.deleteContents();
                                                    range.insertNode(document.createTextNode(emoji));
                                                    range.collapse(false);
                                                    sel.removeAllRanges();
                                                    sel.addRange(range);
                                                } else {
                                                    const start = el.selectionStart;
                                                    const end = el.selectionEnd;
                                                    el.value = el.value.slice(0, start) + emoji + el.value.slice(end);
                                                    el.selectionStart = el.selectionEnd = start + emoji.length;
                                                }
                                                suggestionBox.style.display = 'none';
                                                el.focus();
                                            }
                                        
                                            function getTextBeforeCursor(el) {
                                                if (el.isContentEditable) {
                                                    const sel = window.getSelection();
                                                    if (!sel.rangeCount) return '';
                                                    const range = sel.getRangeAt(0).cloneRange();
                                                    range.collapse(true);
                                                    const pre = range.cloneRange();
                                                    pre.selectNodeContents(el);
                                                    pre.setEnd(range.endContainer, range.endOffset);
                                                    return pre.toString();
                                                } else {
                                                    return el.value.substring(0, el.selectionStart);
                                                }
                                            }
                                        
                                            function getLastMatchingEmoji(text) {
                                                const words = text.split(/\s+/);
                                                for (let len = 6; len >= 1; len--) {
                                                    const phrase = words.slice(-len).join(' ').trim();
                                                    if (emojiMap[phrase]) return emojiMap[phrase];
                                                }
                                                return null;
                                            }
                                        
                                            function updateSuggestionBox(emoji, x, y) {
                                                suggestionBox.innerText = emoji;
                                                suggestionBox.style.left = `${x + 10}px`;
                                                suggestionBox.style.top = `${y + 10}px`;
                                                suggestionBox.style.display = 'block';
                                            }
                                        
                                            document.addEventListener('focusin', e => {
                                                const el = e.target;
                                                if (isTextInput(el)) lastTarget = el;
                                            });
                                        
                                            document.addEventListener('input', handleTyping);
                                            document.addEventListener('keyup', handleTyping);
                                        
                                            function handleTyping(e) {
                                                const el = e.target;
                                                if (!isTextInput(el)) return;
                                                lastTarget = el;
                                        
                                                const text = getTextBeforeCursor(el);
                                                const emoji = getLastMatchingEmoji(text);
                                                const coords = getCursorCoordinates(el);
                                        
                                                if (emoji && coords) {
                                                    updateSuggestionBox(emoji, coords.x, coords.y);
                                                } else {
                                                    suggestionBox.style.display = 'none';
                                                }
                                            }
                                        
                                            function isTextInput(el) {
                                                return el instanceof HTMLTextAreaElement ||
                                                    (el instanceof HTMLInputElement && el.type === "text") ||
                                                    el.isContentEditable;
                                            }
                                        
                                            function getCursorCoordinates(el) {
                                                if (el.isContentEditable) {
                                                    const sel = window.getSelection();
                                                    if (!sel.rangeCount) return null;
                                                    const range = sel.getRangeAt(0).cloneRange();
                                                    range.collapse(true);
                                                    const rect = range.getBoundingClientRect();
                                                    return { x: rect.left, y: rect.top };
                                                } else {
                                                    const rect = el.getBoundingClientRect();
                                                    return { x: rect.left + 10, y: rect.top + 10 };
                                                }
                                            }
                                        
                                            document.addEventListener('click', e => {
                                                if (!suggestionBox.contains(e.target)) suggestionBox.style.display = 'none';
                                            });
                                        
                                            // ---------- ⚙️ כפתור ניהול קטן ----------
                                            const managerButton = document.createElement('div');
                                            managerButton.textContent = '➕';
                                            Object.assign(managerButton.style, {
                                                position: 'fixed',
                                                bottom: '8px',
                                                right: '8px',
                                                padding: '6px 8px',
                                                background: '#007bffcc',
                                                color: '#fff',
                                                borderRadius: '50%',
                                                cursor: 'pointer',
                                                zIndex: 9999,
                                                fontSize: '12px',
                                                boxShadow: '0 2px 5px rgba(0,0,0,0.3)',
                                                userSelect: 'none'
                                            });
                                            document.body.appendChild(managerButton);
                                        
                                            // גרירה עם העכבר
                                            let isDragging = false, offsetX = 0, offsetY = 0;
                                            managerButton.addEventListener('mousedown', e => {
                                                isDragging = true;
                                                offsetX = e.offsetX;
                                                offsetY = e.offsetY;
                                                e.preventDefault();
                                            });
                                            document.addEventListener('mouseup', () => isDragging = false);
                                            document.addEventListener('mousemove', e => {
                                                if (!isDragging) return;
                                                managerButton.style.right = 'auto';
                                                managerButton.style.left = `${e.pageX - offsetX}px`;
                                                managerButton.style.top = `${e.pageY - offsetY}px`;
                                            });
                                        
                                            managerButton.addEventListener('click', () => {
                                                const phrase = prompt("הכנס ביטוי שאחריו יוצג אימוג'י:");
                                                if (!phrase) return;
                                                const emoji = prompt("הכנס את האימוג'י המתאים:");
                                                if (!emoji) return;
                                                emojiMap[phrase.trim()] = emoji.trim();
                                                localStorage.setItem('emojiMap', JSON.stringify(emojiMap));
                                                alert(`הביטוי "${phrase}" נוסף עם האימוג'י ${emoji}`);
                                            });
                                        })();
                                        
                                        
                                        תגובה 1 תגובה אחרונה
                                        0
                                        • מ מנותק
                                          מ מנותק
                                          מים אחרונים
                                          כתב נערך לאחרונה על ידי
                                          #19

                                          עכשיו עובד גם בתגובות
                                          זה מדהים😲
                                          מתרגש מאוד🤩
                                          האימוג'י קופץ בסמוך למיקום העכבר.

                                          // ==UserScript==
                                          // @name         Emoji Suggestion (Dynamic & Persistent)
                                          // @namespace    http://tampermonkey.net/
                                          // @version      1.0
                                          // @description  מציע אימוג'י לפי הקלדה, תומך בשדות רגילים ו-contentEditable, נשמר בדפדפן ומופיע ליד הקורסור
                                          // @author       ChatGPT + User
                                          // @match        *://*/*
                                          // @grant        none
                                          // ==/UserScript==
                                          
                                          (function () {
                                              'use strict';
                                          
                                              const emojiSuggestions = {
                                                  "תודה רבה": "🙏",
                                                  "בהצלחה": "🍀",
                                                  "יום טוב": "☀️",
                                                  "לילה טוב": "🌙",
                                                  "חג שמח": "🎉",
                                                  "כל הכבוד": "👏",
                                                  "מחזיק לך אצבעות": "🤞",
                                                  "אוהב אותך": "❤️",
                                                  "שמח בשבילך": "🥰",
                                                  "מתרגש מאוד": "🤩",
                                                  "גאה בך": "🥹",
                                                  "אין מילים": "🤯",
                                                  "זה מדהים": "😲",
                                                  "שומר על קשר": "📞",
                                                  "שולח חיבוק": "🤗",
                                                  "הכל יסתדר בעזרת השם": "🙌",
                                                  "מתגעגע": "🥲",
                                                  "סומך עליך": "👍",
                                                  "אלוף": "🏆",
                                                  "גיבור": "🦸",
                                                  "חזק ואמץ": "💪",
                                                  "מתפלל בשבילך": "✡️",
                                                  "אמן כן יהי רצון": "🙏",
                                                  "עלה והצלח": "🚀",
                                                  "שמור על עצמך": "🛡️",
                                                  "הלוואי וכל חלומותיך יתגשמו": "✨",
                                                  "מקווה לטוב": "🍀",
                                                  "הכל בזמנו": "⏳",
                                                  "איזה יופי": "😍",
                                                  "מחכה לעדכון": "📝",
                                                  "עוקב מקרוב": "👀",
                                                  "חיבוק גדול": "🫂",
                                                  "מאחל הצלחה": "🍀"
                                              };
                                          
                                              let lastTarget = null;
                                              let mouseX = 0, mouseY = 0;
                                          
                                              // יצירת תיבת ההצעה
                                              const suggestionBox = document.createElement('div');
                                              suggestionBox.style.position = 'fixed';
                                              suggestionBox.style.background = '#ffffff';
                                              suggestionBox.style.padding = '4px 8px';
                                              suggestionBox.style.border = '1px solid #ccc';
                                              suggestionBox.style.borderRadius = '6px';
                                              suggestionBox.style.fontSize = '18px';
                                              suggestionBox.style.zIndex = 999999;
                                              suggestionBox.style.boxShadow = '0 2px 6px rgba(0,0,0,0.15)';
                                              suggestionBox.style.display = 'none';
                                              suggestionBox.style.cursor = 'pointer';
                                              suggestionBox.style.userSelect = 'none';
                                              document.body.appendChild(suggestionBox);
                                          
                                              // שמירת אימוג'ים שהוצעו ונבחרו לאחרונה
                                              const storageKey = 'emoji_recent';
                                              let recentEmojis = JSON.parse(localStorage.getItem(storageKey) || '[]');
                                          
                                              function saveRecent(phrase) {
                                                  recentEmojis.push({ phrase, time: Date.now() });
                                                  recentEmojis = recentEmojis.filter((e, i, arr) => {
                                                      // שמור רק את 30 האחרונים או כאלו מהיום האחרון
                                                      return arr.length - i <= 30 || (Date.now() - e.time < 86400000);
                                                  });
                                                  localStorage.setItem(storageKey, JSON.stringify(recentEmojis));
                                              }
                                          
                                              function wasRecentlyUsed(phrase) {
                                                  return recentEmojis.some(e => e.phrase === phrase && (Date.now() - e.time < 60000)); // 1 דקה
                                              }
                                          
                                              // הכנסת אימוג'י
                                              function insertEmoji(emoji) {
                                                  if (!lastTarget) return;
                                          
                                                  if (lastTarget.isContentEditable) {
                                                      const selection = document.getSelection();
                                                      if (!selection.rangeCount) return;
                                                      const range = selection.getRangeAt(0);
                                                      range.deleteContents();
                                                      range.insertNode(document.createTextNode(emoji));
                                                  } else if (lastTarget instanceof HTMLTextAreaElement || lastTarget instanceof HTMLInputElement) {
                                                      const start = lastTarget.selectionStart;
                                                      const end = lastTarget.selectionEnd;
                                                      const text = lastTarget.value;
                                                      lastTarget.value = text.slice(0, start) + emoji + text.slice(end);
                                                      lastTarget.selectionStart = lastTarget.selectionEnd = start + emoji.length;
                                                  }
                                          
                                                  suggestionBox.style.display = 'none';
                                                  lastTarget.focus();
                                              }
                                          
                                              suggestionBox.addEventListener('click', function () {
                                                  const emoji = suggestionBox.innerText.trim();
                                                  if (emoji) {
                                                      insertEmoji(emoji);
                                                      saveRecent(suggestionBox.dataset.phrase);
                                                  }
                                              });
                                          
                                              document.addEventListener('input', function (e) {
                                                  const target = e.target;
                                                  if (!(target instanceof HTMLInputElement || target instanceof HTMLTextAreaElement || target.isContentEditable)) {
                                                      return;
                                                  }
                                                  lastTarget = target;
                                          
                                                  const text = target.value || target.innerText || '';
                                                  for (const phrase in emojiSuggestions) {
                                                      if (text.includes(phrase) && !wasRecentlyUsed(phrase)) {
                                                          suggestionBox.innerText = emojiSuggestions[phrase];
                                                          suggestionBox.dataset.phrase = phrase;
                                                          suggestionBox.style.left = (mouseX + 10) + 'px';
                                                          suggestionBox.style.top = (mouseY + 10) + 'px';
                                                          suggestionBox.style.display = 'block';
                                                          return;
                                                      }
                                                  }
                                                  suggestionBox.style.display = 'none';
                                              }, true);
                                          
                                              document.addEventListener('mousemove', function (e) {
                                                  mouseX = e.clientX;
                                                  mouseY = e.clientY;
                                              });
                                          })();
                                          
                                          
                                          ב תגובה 1 תגובה אחרונה
                                          1
                                          • מ מנותק
                                            מ מנותק
                                            מים אחרונים
                                            כתב נערך לאחרונה על ידי מים אחרונים
                                            #20

                                            @עדלאידע איך אני מעדכן אוטומטית מגיט?

                                            // ==UserScript==
                                            // @name         Emoji Suggestion (Dynamic + Custom Add Button)
                                            // @namespace    http://tampermonkey.net/
                                            // @version      1.1
                                            // @description  מציע אימוג'ים לפי מילים, עם הוספה מותאמת אישית בלחיצה ושמירה מקומית
                                            // @author       ChatGPT + מים-אחרונים
                                            // @match        *://*/*
                                            // @grant        none
                                            //@updateURL     https://github.com/mhotjrubho/Text-emojis/blob/main/Text.emoji
                                            // ==/UserScript==
                                            
                                            מ תגובה 1 תגובה אחרונה
                                            0

                                            • התחברות

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

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