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

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

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

שלאה בקוד C#: איך לעשות חיפוש בתוך מסמך html שהוא פתוח בwebbrowser

מתוזמן נעוץ נעול הועבר תכנות
20 פוסטים 3 כותבים 335 צפיות 3 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • pcinfogmachP מנותק
    pcinfogmachP מנותק
    pcinfogmach
    כתב ב נערך לאחרונה על ידי
    #11

    @dovid
    אולי זה יהיה שימושי
    https://codereview.stackexchange.com/questions/126540/extended-webbrowser-control
    אבל זה מעשבר לרמה שלי אין לי מושג איך להשתמש עם זה

    גמ"ח מידע מחשבים ואופיס

    תגובה 1 תגובה אחרונה
    0
    • dovidD מנותק
      dovidD מנותק
      dovid
      ניהול
      כתב ב נערך לאחרונה על ידי
      #12

      @pcinfogmach אמאלה, באמת חשבת לשמור כל הזמן לקובץ מקומי, רק בשביל להרויח את הback+forward?
      זה גם הסיבה שלא עובד לך JS, כי זה קובץ מקומי ומטעמי אבטחה זה חסום, לא בגלל שזה WebBrowser ישן (אפשר כמדומני לשנות זאת בהגדרות אינטרנט גלובלית לכל המחשב, אבל לא כדאי).
      אתה צריך להקים פשוט שרת אינטרנט' ככה תיתן טקסט עם כתובות בלי בעיה.
      זה מתחיל להסתבך... אבל אתה זה שהעזת לעשות בוורד ככל העולה על רוחך 🙂

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

        @pcinfogmach אמאלה, באמת חשבת לשמור כל הזמן לקובץ מקומי, רק בשביל להרויח את הback+forward?
        זה גם הסיבה שלא עובד לך JS, כי זה קובץ מקומי ומטעמי אבטחה זה חסום, לא בגלל שזה WebBrowser ישן (אפשר כמדומני לשנות זאת בהגדרות אינטרנט גלובלית לכל המחשב, אבל לא כדאי).
        אתה צריך להקים פשוט שרת אינטרנט' ככה תיתן טקסט עם כתובות בלי בעיה.
        זה מתחיל להסתבך... אבל אתה זה שהעזת לעשות בוורד ככל העולה על רוחך 🙂

        pcinfogmachP מנותק
        pcinfogmachP מנותק
        pcinfogmach
        כתב ב נערך לאחרונה על ידי pcinfogmach
        #13

        @dovid כתב בשלאה בקוד C#: איך לעשות חיפוש בתוך מסמך html שהוא פתוח בwebbrowser:

        אתה צריך להקים פשוט שרת אינטרנט

        אני לא בטוח מה כוונתך - התוסף בנוי בשביל אברכים שרוב הזמן אין להם חיבור לאינטרנט.

        @dovid כתב בשלאה בקוד C#: איך לעשות חיפוש בתוך מסמך html שהוא פתוח בwebbrowser:

        אמאלה, באמת חשבת לשמור כל הזמן לקובץ מקומי, רק בשביל להרויח את הback+forward?

        נשמע שיש לך רעיון אחר איך לעשות back+forward??? או שלא הבנתי נכון

        גמ"ח מידע מחשבים ואופיס

        חגיח תגובה 1 תגובה אחרונה
        0
        • pcinfogmachP pcinfogmach

          @dovid כתב בשלאה בקוד C#: איך לעשות חיפוש בתוך מסמך html שהוא פתוח בwebbrowser:

          אתה צריך להקים פשוט שרת אינטרנט

          אני לא בטוח מה כוונתך - התוסף בנוי בשביל אברכים שרוב הזמן אין להם חיבור לאינטרנט.

          @dovid כתב בשלאה בקוד C#: איך לעשות חיפוש בתוך מסמך html שהוא פתוח בwebbrowser:

          אמאלה, באמת חשבת לשמור כל הזמן לקובץ מקומי, רק בשביל להרויח את הback+forward?

          נשמע שיש לך רעיון אחר איך לעשות back+forward??? או שלא הבנתי נכון

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

          @pcinfogmach כתב בשלאה בקוד C#: איך לעשות חיפוש בתוך מסמך html שהוא פתוח בwebbrowser:

          אני לא בטוח מה כוונתך - התוסף בנוי בשביל אברכים שרוב הזמן אין להם חיבור לאינטרנט.

          שרת אינטרנט מקומי לא דורש חיבור לאינטרנט, הכוונה היא לתוכנה שמארחת אתרים כאילו היא אתר (ובמקרה זה באמת יהיה אתר שאתה תבחר), אבל בגלל שזה במחשב המקומי היחיד שיכול לגשת לאתר הזה הוא מי שגולש מהמחשב המקומי.

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

            כוונתי שרת אינטרנט מקומי.
            אתה פשוט מאזין לבקשות לכתובת מקומית כמו localhost:1234 ואז אתה מגיש את הדף לא בצורה יזומה אלא בצורה מגיבה.
            (אתה יכול ליזום את הnavigate כמובן בדיוק כפי שעשית עם הקבצים).
            הנה דוגמת קוד:

            public partial class UserControl1 : UserControl
            {
                public UserControl1()
                {
                    InitializeComponent();
                    Disposed += (s,e) => server?.Close();
                }
            
                static UserControl1()
                { 
                    serverThread = new Thread(StartServer);
                    serverThread.Start();
                }
            
            
                static Dictionary<string, string> dataHtmls = new Dictionary<string, string>();
            
                const string host = "http://localhost:8180/";
                static Thread serverThread;
                static HttpListener server;
                static void StartServer()
                {
                    server = new HttpListener();
                    server.Prefixes.Add(host);
                    server.Start();
            
                    while (true)
                    {
                        var context = server.GetContext();
                        var request = context.Request;
                        var response = context.Response;
            
                        if (!dataHtmls.TryGetValue(request.Url.PathAndQuery, out var responseString))
                            responseString = "Not Found.";
            
                        var buffer = Encoding.UTF8.GetBytes(responseString);
                        response.ContentLength64 = buffer.Length;
                        var output = response.OutputStream;
                        output.Write(buffer, 0, buffer.Length);
                        output.Close();
                    }
                }
            
            
                private void button1_Click(object sender, EventArgs e)
                {
            
                    dataHtmls["/"] = $@"
            <html>
            <head>
            <meta name=""content-type"" content=""text/html; charset=UTF-8"" />
            <script>
                function showMessage() {{
                    alert('Button clicked!');
                }}
            </script>
            </head>
            <body>
            <button onclick='showMessage()'>Click Me</button>
            </body>
            </html>";
                        
                    webBrowser1.Navigate(host);
                }
            
            
            }
            
            
            • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
            • בכל נושא אפשר ליצור קשר dovid@tchumim.com
            pcinfogmachP תגובה 1 תגובה אחרונה
            3
            • dovidD dovid

              כוונתי שרת אינטרנט מקומי.
              אתה פשוט מאזין לבקשות לכתובת מקומית כמו localhost:1234 ואז אתה מגיש את הדף לא בצורה יזומה אלא בצורה מגיבה.
              (אתה יכול ליזום את הnavigate כמובן בדיוק כפי שעשית עם הקבצים).
              הנה דוגמת קוד:

              public partial class UserControl1 : UserControl
              {
                  public UserControl1()
                  {
                      InitializeComponent();
                      Disposed += (s,e) => server?.Close();
                  }
              
                  static UserControl1()
                  { 
                      serverThread = new Thread(StartServer);
                      serverThread.Start();
                  }
              
              
                  static Dictionary<string, string> dataHtmls = new Dictionary<string, string>();
              
                  const string host = "http://localhost:8180/";
                  static Thread serverThread;
                  static HttpListener server;
                  static void StartServer()
                  {
                      server = new HttpListener();
                      server.Prefixes.Add(host);
                      server.Start();
              
                      while (true)
                      {
                          var context = server.GetContext();
                          var request = context.Request;
                          var response = context.Response;
              
                          if (!dataHtmls.TryGetValue(request.Url.PathAndQuery, out var responseString))
                              responseString = "Not Found.";
              
                          var buffer = Encoding.UTF8.GetBytes(responseString);
                          response.ContentLength64 = buffer.Length;
                          var output = response.OutputStream;
                          output.Write(buffer, 0, buffer.Length);
                          output.Close();
                      }
                  }
              
              
                  private void button1_Click(object sender, EventArgs e)
                  {
              
                      dataHtmls["/"] = $@"
              <html>
              <head>
              <meta name=""content-type"" content=""text/html; charset=UTF-8"" />
              <script>
                  function showMessage() {{
                      alert('Button clicked!');
                  }}
              </script>
              </head>
              <body>
              <button onclick='showMessage()'>Click Me</button>
              </body>
              </html>";
                          
                      webBrowser1.Navigate(host);
                  }
              
              
              }
              
              
              pcinfogmachP מנותק
              pcinfogmachP מנותק
              pcinfogmach
              כתב ב נערך לאחרונה על ידי
              #16

              @dovid
              שאלה: כמה משאבים זה לוקח לעשות שרת מקומי כמו שתיארת?

              גמ"ח מידע מחשבים ואופיס

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

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

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

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

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

                  @dovid כתב בשלאה בקוד C#: איך לעשות חיפוש בתוך מסמך html שהוא פתוח בwebbrowser:

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

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

                  אבל זה בהנחה ובאמת HttpListener בזבזני, מה שגם אם הוא נכון לא נראה לי בעל משמעות רבה כל כך שצריך להתקמצן עליו.

                  תגובה 1 תגובה אחרונה
                  2
                  • pcinfogmachP מנותק
                    pcinfogmachP מנותק
                    pcinfogmach
                    כתב ב נערך לאחרונה על ידי
                    #19

                    @dovid
                    איפה אפשר לקרוא קצת על הנושא הזה של שרת אינטרנט מקומי. (ומה בדיוק להזין בחיפוש גוגל) אני רוצה קצת לחקור את העניין לפני שאני משתמש בזה.
                    תודה

                    גמ"ח מידע מחשבים ואופיס

                    תגובה 1 תגובה אחרונה
                    0
                    • dovidD מנותק
                      dovidD מנותק
                      dovid
                      ניהול
                      כתב ב נערך לאחרונה על ידי dovid
                      #20

                      אין הבדל בין שרת אינטרנט מקומי ללא מקומי, גם השרת שהראיתי יכול לתת תשובה לכל בקשה מבחוץ אם יגדירו למחשב דומיין וישנו את הlocalhost ל127.0.0.1. כל אתר ודף באינטרנט מקבלים את תוכן הדף שהם מציגים כטקסט שבא כתשובה מתוכנה דמויית הHttpListener.
                      ולכן בעצם אתה רוצה לקרוא על שרת אינטרנט, HTTP Server.
                      כיון שזה תחום רחב מידי קשה לדעת לאן להפנות אותך, אשמח לענות לך על שאלות סביב זה בנושא נפרד.

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


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

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

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