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

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

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

davidnead

@davidnead
אודות
פוסטים
382
נושאים
40
קבוצות
0
עוקבים
3
עוקב אחרי
0

פוסטים

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

  • עבודה עם JS דרך C#
    D davidnead

    @dovid אמר בעבודה עם JS דרך C#:

    @davidnead אמר בעבודה עם JS דרך C#:

    This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn't understand how to supply the credentials required.

    תיק. איך נפלת על כזה חור...
    זה סיפור.

    כ"כ נורא?


  • עבודה עם JS דרך C#
    D davidnead

    @davidnead אמר בעבודה עם JS דרך C#:

    @dovid אמר בעבודה עם JS דרך C#:

    @davidnead אמר בעבודה עם JS דרך C#:

    @davidnead אמר בעבודה עם JS דרך C#:

    IsBrowserInitializedChanged

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

    https://github.com/cefsharp/CefSharp/wiki/Frequently-asked-questions#CallJSWithResult

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

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

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


  • עבודה עם JS דרך C#
    D davidnead

    @dovid אמר בעבודה עם JS דרך C#:

    @davidnead אמר בעבודה עם JS דרך C#:

    @davidnead אמר בעבודה עם JS דרך C#:

    IsBrowserInitializedChanged

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

    https://github.com/cefsharp/CefSharp/wiki/Frequently-asked-questions#CallJSWithResult

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

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


  • עבודה עם JS דרך C#
    D davidnead

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

    This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn't understand how to supply the credentials required.


  • עבודה עם JS דרך C#
    D davidnead

    @davidnead אמר בעבודה עם JS דרך C#:

    IsBrowserInitializedChanged

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

    וכללית, איני תופס איך עובד האובייקט הזה. הוא עובד באופן שונה לגמרי מהאובייקט IE שמגיע עם הVS. הוא לא מתעסק בDOM או באירועי דפדפן רגילים. מה זה אומר למשל "GetMainFrame"?


  • עבודה עם JS דרך C#
    D davidnead

    זה עובד - עד התוספת שלך בסוף


  • עבודה עם JS דרך C#
    D davidnead

    @מנצפך אמר בעבודה עם JS דרך C#:

    @davidnead תעלה את כל הקוד שנוכל לדבר בצורה ברורה
    תעצב אותו כמו שצריך

    לא יודע איך מעצבים, מקוה שבסדר.

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using mshtml;
    using System.IO;
    using CefSharp;
    using CefSharp.WinForms;

    namespace WindowsFormsApp1
    {
    public partial class Form1 : Form
    {

        public Form1()
        {
            InitializeComponent();
        }
    
        public ChromiumWebBrowser browser;
    
        public void InitBrowser()
        {
            Cef.Initialize(new CefSettings());
            browser = new ChromiumWebBrowser("www.google.com");
            this.Controls.Add(browser);
    
            var script = string.Format("alert('he')");
            browser.GetMainFrame().ExecuteJavaScriptAsync(script);
    
        }
    
        private void button1_Click(object sender, EventArgs e)
        {
            InitBrowser();
        }
    }
    

    }


  • עבודה עם JS דרך C#
    D davidnead

    @davidnead אמר בעבודה עם JS דרך C#:

    System.Exception: 'Browser is not yet initialized. Use the IsBrowserInitializedChanged event and check the IsBrowserInitialized property to determine when the browser has been intialized

    זו


  • עבודה עם JS דרך C#
    D davidnead

    ולמה השגיאה?


  • עבודה עם JS דרך C#
    D davidnead

    System.Exception: 'Browser is not yet initialized. Use the IsBrowserInitializedChanged event and check the IsBrowserInitialized property to determine when the browser has been intialized


  • עבודה עם JS דרך C#
    D davidnead

    @מנצפך אמר בעבודה עם JS דרך C#:

    תעשה:

      var script = string.Format("alert('he')");
         
    chromeBrowser.GetMainFrame().ExecuteJavaScriptAsync(script);
    

    chromeBrowser - זה המופע של הדפדפן?


  • עבודה עם JS דרך C#
    D davidnead

    @מנצפך אמר בעבודה עם JS דרך C#:

    אתה מצליח להפעיל אתר?

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


  • עבודה עם JS דרך C#
    D davidnead

    @מנצפך אמר בעבודה עם JS דרך C#:

    דבר ראשון תגדיר את ה solution על 64
    לחצן ימיני על ה solution
    configration manager

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


  • עבודה עם JS דרך C#
    D davidnead

    @מנצפך
    האמת לא מאוד משנה לי winForm או WPF מדובר על אפליקציה די פשוטה. עדיף WPF אבל את ההקנה עשיתי על winForm כי זה ההדרכה זם.

    וזה מביא לשאלה השניה: ההדרכה באתר שלהם+תיעוד על ההתקנה שראיתי היכן שהוא ברשת, לא משהו מפורט.

    VS 2017


  • עבודה עם JS דרך C#
    D davidnead

    @מנצפך אמר בעבודה עם JS דרך C#:

    @davidnead אני בדיוק עובד על זה. אהיה ריתך בקשר.

    תודה, מעולה. אני זקוק לקוד ברמה הבסיסית ביותר: הטענת פונקציה, קריאה, וקבלת תגובה. בהדרכה שם התקשתי אפילו להבחין מה קוד C# ומה קוד JS.
    המטרה שלי היא פשוט להריץ JS מאפליקציה שולחנית ללא שימוש בדפדפן ה"אמיתי".


  • עבודה עם JS דרך C#
    D davidnead

    תודה. יצירת הele משום מה לא הצליחה. בסוף הצלחתי בעקבות הקוד שלך עם הקוד הפשוט הבא:

            HtmlElement scriptJQ = wbTest.Document.CreateElement("script");
            scriptJQ.InnerText = WindowsFormsApp1.Properties.Resources.JQUERY;
            wbTest.Document.Body.AppendChild(scriptJQ);
    

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

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


  • עבודה עם JS דרך C#
    D davidnead

    אני מעוניין למצוא את הדרך הפשוטה והקצרה להריץ קוד JS מתוך אפליקציית WPF בנכתבת בC#.

    הפעולות שאני מבקש הם כדלהלן:

    1. ליצור אובייקט webBrouser
    2. לטעון לתוכו URL מסויים
    3. להוסיף אל הדף הטעון כעת קוד JS
    4. לקרוא ע"י קוד C# לפונקציית JS מסויימת - ולמסור לה ארגומנטים
    5. לקבל בחזרה פלט מהפונקציה הזו

    מה ניסיתי עד עכשיו:
    שלב 1 ו2 כמובן ביצעתי.
    שלב 3 - הוספת הקוד אל הדף, נתקלתי בבעיה. מצאתי כמה שיטות. ניסיתי להשתמש בהוספת אלמנט "<script>" והוספת קוד אל תוכו באמצעות:

            var Document2 = (IHTMLDocument2)wbTest.Document;
            var scriptElement = Document2.createElement("script");
            scriptElement.insertAdjacentHTML("afterBegin", "js code");
    

    זה לא הצליח, האלמנט לא נוצר בדף.

    ניסיתי להוסיף את האלמנט בצורת מחרוזת HTML בשיטה הבאה:

            HTMLDocument document = (HTMLDocument)wbTest.Document;
            IHTMLElement body = (IHTMLElement)document.body;
            body.insertAdjacentHTML("afterBegin", "סתם קוד HTML נוסף לבדיקה<script>alert (123) function test (a,b){alert(123)}</script>");
    

    האלמנט וקוד הHTML נוצר, אולם קוד הJS שבתוכו לא הופעל. יש לשים לב ששמתי גם קוד שמופעל אוטומטית וגם קוד בפונקציה שדורש קריאה.

    ניסיתי את השיטה הבאה שמפעילה קוד JS באופן ישיר:

            var Document2 = (IHTMLDocument2)wbTest.Document;
            string jsCode = "js code";
            Document2.parentWindow.execScript(jsCode);
    

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

    ניסתי לקרוא לJS בצורה הבאה:

            object[] args = { tb1.Text, tb2.Text };
    
            wbTest.InvokeScript("test", args);
    

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

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

    תודה מראש


  • הדגל U ברגקס
    D davidnead

    @dovid אמר בRegex - ביטויים רגולריים:

    Ungreedy

    תודה על המדריך המעולה, אני משתמש בו כל הזמן.

    האם הדגל U - Ungreedy עובד בJS?‏
    עושה לי רושם שלא
    וגם להשתמש במקום במציין כימות לא הולך לי

    אני מנסה "לבודד" את כל ה"דיבור המתחיל ברש"י". למשל:

    מתני'. השותפין שחלקו וכו'
    נתיאש הימנה ולא גדרה. דוקא נתיאש וכו'

    אז השתמשי ברגקס הבא באמצעות הבדיקה כאן:

    /^(.+)\./gmU
    

    אבל בJS הוא לא זיהה את ה U

    אז במקום זה ניסיתי:

    ^(.+)\.+?
    

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


  • מניפולציה על תוצאה של חיפוש בביטוי רגולרי
    D davidnead

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


  • מניפולציה על תוצאה של חיפוש בביטוי רגולרי
    D davidnead

    @dovid אמר במניפולציה על תוצאה של חיפוש בביטוי רגולרי:

    זה אובייקט JS שמכיל את כל המידע על התוצאה הנתונה כולל הקבוצות

    תוכל להרחיב טיפה? (מקסימום תעתיק אח"כ למדריך הרגקס 😉 ) לא מכיר את האובייקט הזה והשימוש בו. איך יכולתי למשל להשתמש בו כאן במקום פרמטרי ההמשך.

  • 1
  • 2
  • 16
  • 17
  • 18
  • 19
  • 20
  • 19 / 20
  • התחברות

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

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