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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
מוטי אורןמ

מוטי אורן

@מוטי אורן
אודות
פוסטים
87
נושאים
6
קבוצות
0
עוקבים
1
עוקב אחרי
9

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • שיתוף מידע בין ראוטרים ב express js
    מוטי אורןמ מוטי אורן

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

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


  • שיתוף מידע בין ראוטרים ב express js
    מוטי אורןמ מוטי אורן

    @yossiz וגם @OdedDvir וואו איך לא חשבתי על זה.. אתם אומרים פשוט לצרוך את הקלאס פעם אחת ב app.js ואז לייצא את אותו קלאס לכל הראוטרים. טוב, קורה ששוכחים דברים בסיסיים. בכל מקרה, תודה רבה!

    נ.ב. הטעות שלי הייתה שעשיתי require מחדש בכל ראוטר.. זה מה שגרם ליצירת מופע חדש של המחלקה בכל פעם.


  • שיתוף מידע בין ראוטרים ב express js
    מוטי אורןמ מוטי אורן

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

    כתבתי class לניהול המשתמשים (כמובן שברגע שנופל השרת מכל סיבה שהיא לא נשאר כלום מהמידע), ה class נראית בערך ככה:

    class Users {
      constructor() {}
    
      createUser() {}
      editUserProfile() {}
      deleteUser() {}
    }
    

    זה בגדול המתודות של ה class, ואני עושה לו export singleton ככה:

    module.exports = new Users();
    

    כמובן שיש בקלאס מערך של המשתמשים, שאליו הם נוספים.

    בנוסף יש לי תקייה שאחראית על הניתוב בשם 'routes', בתיקייה הזאת שמתי ראוטר להתחברות 'login', וראוטר להרשמה 'signup'.

    בקובץ app.js אני צורך את הראוטרים עם require, ואני רוצה שכל הראוטרים של ה users כמו התחברות והרשמה, יקבלו את אותו קלאס דרך app.js לצורך העניין, ויעבדו מולו. כי מה שקורה אם אני מייבא את הקלאס לתוך כל אחד מהראוטרים, זה בעייתי - כי הוא מקבל קלאס חדש שאין בו את המערך של היוזרים.

    בכל מקרה השאלה שלי היא - איך אני יכול לקבל לתוך הראוטרים את הקלאס הזה בשביל לעבוד איתו?


  • בקשה | סקריפט עבור אתר אגורה
    מוטי אורןמ מוטי אורן

    @מעלה-ומוריד בסוף מצאתי דרך.

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

    מה שעשיתי זה, ביצעתי בקשות עם fetch לכל אחד מהשורות, וחתכתי מכל הסטרינג של ה-HTML את ה-URL של התמונה עצמה.

    מעודכן גם ל - Tampermonkey.

    נראה לי יותר טוב:

    // ==UserScript==
    // @name         imagesCreator - for agora.co.il site
    // @version      1.0
    // @author       moti-oren
    // @description  מוסיף תמונות למוצרים באתר אגורה
    // @include      https://www.agora.co.il/*
    // @noframes
    // ==/UserScript==
    
    const objectGroupList = document.querySelectorAll('.objectGroup');
    
    for (let objectGroup of objectGroupList) {
        const a = objectGroup.querySelector('a');
        const href = a.href;
        const words = href.substring(30).slice(0, -6).split('/');
    
        showImage(words[0], words[1], objectGroup);
    }
    
    function showImage(a, b, o) {
        e = - 1 != location.pathname.toLowerCase().indexOf('togetcheck.asp'),
        d = document.getElementById('objectDetails' + b),
            f = '/cache/' + a + '/' + b + '_o.asp?toGet=1' + (e ? '&toGetCheck=1' : '');
        switch (location.pathname.toLowerCase()) {
            case '/togetexperimenti.asp':
                f += '&ex=ExperimentI';
                break;
            case '/togetexperimentii.asp':
                f += '&ex=ExperimentII'
        }
        fetch(f, {
            method: 'GET',
            headers: {
                'Content-Type': 'text/html; charset=UTF-8',
                'Content-Language': 'he'
            }
        }).then((res) => {
            return res.text();
        }).then((val) => {
            const strIndex = val.indexOf('<span class="thumbnail" style="background-image:url');
            const start = val.indexOf('http', strIndex);
            const last = val.indexOf(')', strIndex);
            const url = val.slice(start, last);
            const objectName = o.querySelector('.objectName');
            objectName.innerHTML += '<img src="' + url + '" width="30">';
        })
    }
    

  • בקשה | סקריפט עבור אתר אגורה
    מוטי אורןמ מוטי אורן

    @מעלה-ומוריד אני ינסה לעבוד על זה יותר מאוחר בלנ"ד


  • בקשה | סקריפט עבור אתר אגורה
    מוטי אורןמ מוטי אורן

    @מעלה-ומוריד אני רואה ש @yossiz כבר הספיק לענות... אבל הסקריפט הזה עם קצת שיפצורים יכול להיות טוב:

    const objectGroupList = document.querySelectorAll('.objectGroup');
    
    for (let objectGroup of objectGroupList) {
        const a = objectGroup.querySelector('a');
        const href = a.href;
        const words = href.substring(30).slice(0, -6).split('/');
    
        showImage(words[0], words[1], objectGroup);
    }
    
    function showImage(a, b, o) {
        f = 'https://cdn.agora.co.il/deals_images/' + a + '/' + b + '.jpg';
    
        const objectName = o.querySelector('.objectName');
        objectName.innerHTML += '<img src="' + f + '" width="30">';
    }
    

  • הזרקת כפתור ב gmail
    מוטי אורןמ מוטי אורן

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

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

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


  • הזרקת כפתור ב gmail
    מוטי אורןמ מוטי אורן

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

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

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


  • הזרקת כפתור ב gmail
    מוטי אורןמ מוטי אורן

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


  • הזרקת כפתור ב gmail
    מוטי אורןמ מוטי אורן

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


  • הזרקת כפתור ב gmail
    מוטי אורןמ מוטי אורן

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


  • איך למחוק הודעה יוצאת בג'ימייל?
    מוטי אורןמ מוטי אורן

    @שאול-נ-י אמר באיך למחוק הודעה יוצאת בג'ימייל?:

    @מוטי-אורן לא עובד
    זה מה שנשלח
    7ba5f0c1-2e22-4f3a-a949-68a9714d37ab-image.png
    ונשאר בדואר יוצא

    אחח.. אני ינסה לבדוק את זה עוד מעט


  • איך למחוק הודעה יוצאת בג'ימייל?
    מוטי אורןמ מוטי אורן

    @שאול-נ-י אני חושב שזה אמור לעבוד:

    function send() {
      let addressForSearch = 'aaaaaaaa@mail.com' // הכתובת שאת ההודעות ממנה אתה צריך להעביר
      let emailForTransfer = 'bbbbbbbb@mail.com' // המייל שאליו אתה צריך לשלוח את ההודעות
      let messages = GmailApp.search(`from:${addressForSearch}`)
    
      if (messages.length > 0) {
        messages.forEach(function (m) {
          let message = m.getMessages()[0]
          let subject = message.getSubject()
          let body = message.getBody()
          let attachments = message.getAttachments()
    
          var searchTerm = Utilities.getUuid();
          GmailApp.sendEmail(emailForTransfer, subject, body, {
            attachments: attachments,
            id: 'custom id: ' + searchTerm,
          });
          Utilities.sleep(2000);
          var threadIds = GmailApp.search(searchTerm);
          Logger.log(threadIds);
          if (threadIds.length != 1) {
            for (let thread of threadIds) {
              thread.moveToTrash();
            }
          }
        })
      }
    }
    

    הרעיון מבוסס על זה, לא הספקתי לבדוק את זה, אני מקווה שזה עובד.


  • מחפש מדריך ללמוד אבטחת אתרים
    מוטי אורןמ מוטי אורן

    @מנסה-להבין אמר במחפש מדריך ללמוד אבטחת אתרים:

    מה זה?

    נראה לי שהוא מתכוון למתקפת MITM (Men In The Middle - האיש שבאמצע). מדובר במצב שהתוקף בעצם עומד בין הנתקף לבין המשאב שאליו הנתקף רוצה להגיע. במצב כזה קיים הבדל בין HTTP ל - HTTPS, למרות שלא הייתי מגדיר את סוג התקיפה הזאת כתקיפת אתרים.


  • עזרה | איך מתאימים קוד js ל- tampermonki
    מוטי אורןמ מוטי אורן

    @פלורידה בעיקרון אתה לא צריך להתאים כלום. הדבר היחיד שאתה צריך לעשות הוא להגדיר בסקריפט על איזה אתרים הוא ירוץ מי היוצר של הסקריפט ועוד כמה דברים. בשביל זה אתה צריך להוסיף הערות לפני הסקריפט עצמו (או אחריו) שנראות בערך כך:

    // ==UserScript==
    // @name         השם של הסקריפט
    // @version      גירסה
    // @author       יוצר הסקריפט 
    // @description  תיאור של הסקריפט
    // @include      URL To run (כתובת שעליה אתה רוצה שהסקריפט ירוץ)
    
    // ==/UserScript==
    

  • מחפש מדריך ללמוד אבטחת אתרים
    מוטי אורןמ מוטי אורן

    @מנסה-להבין אמר במחפש מדריך ללמוד אבטחת אתרים:

    @nigun אבל זה ממש למתחילים למשל הם דברו שם איך לעקוף בדיקות בצד לקוח אבל אני בטוח שאין אתר שעושה את הבדיקות רק בצד לקוח

    ראית רק את ההתחלה של המדריך, תמשיך עוד. בהמשך הם מדברים על פרצות נוספות כמו XSS, CSRF וכו' וכו' שכן אפשר למצוא אותם באתרים. אתה הרי לא מצפה שהם ילמדו אותך למצוא פרצות zero day. הם מלמדים שם על הפרצות הנפוצות.


  • מחפש מדריך ללמוד אבטחת אתרים
    מוטי אורןמ מוטי אורן

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

    נ.ב. שכחתי לציין שהמדריך הזה חינמי בנוסף לכל.


  • מחפש מדריך ללמוד אבטחת אתרים
    מוטי אורןמ מוטי אורן

    מערך הסייבר העלו קורס מוצלח מאוד (כמו הרבה קורסים מוצלחים שלהם) על WEB Security, בקישור הזה. מומלץ בחום (כמובן שכמו שהזכירו לעיל צריך לדעת לפחות מינימום של בניית אתרים).


  • משתנה בJS
    מוטי אורןמ מוטי אורן

    @חנון-המרבה אמר במשתנה בJS:

    איך אני יכול להשתמש במשתנה של פונקציה אחרת בJS?!

    דבר ראשון, אתה יכול להגדיר אותו עם var או let מחוץ לפונקצייה, ולאתחל איתו עם ערך בתוך הפונקצייה עצמה.

    אפשרות שנייה היא פשוט לכתוב שם משתנה=ערך בלי הגדרה של המשתנה עם var או let. אאל"ט זה גם מגדיר אותו באופן גלובאלי.

    עריכה: בזכות הקישור ש @נ-נח הביא נזכרתי הרגע ב - globalThis.
    פשוט תכתוב globalThis.variable=value. זה מאתחל את המשתנה להיות זמין באובייקט הגלובלי window, ואתה יכול להשתמש איתו מכל מקום.


  • check box error: Uncaught TypeError: Cannot set property 'checked' of nul
    מוטי אורןמ מוטי אורן

    @dovid קוד מצויין! רק אם יורשה לי הקטן הערה קטנה..

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

    <script>
          document.body.addEventListener('change', onCheckboxChange)
    
          function  onCheckboxChange(e){
            console.log(e.target)
              document.getElementById('response').innerText = e.target.dataset.content + ": " + e.target.checked;
          }
    </script>
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 4 / 5
  • התחברות

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

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