Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с инициализацией JS объекта в CefBrowser 
V
    Опции темы
nezabor
  Дата 19.4.2020, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесной житель...
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 17.4.2008
Где: Москва

Репутация: нет
Всего: нет



код формы
Код

using System;
using System.IO;
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 CefSharp;
using CefSharp.WinForms;
using System.Runtime.InteropServices;

namespace WhaBot_chrom
{
    public partial class Form1 : Form
    {
        public ChromiumWebBrowser chromeBrowser;
        public Form1()
        {
            InitializeComponent();
            InitializeChromium();

            chromeBrowser.IsBrowserInitializedChanged += (sender, args) =>
            {
                if (chromeBrowser.IsBrowserInitialized)
                {
                    CefSharpSettings.LegacyJavascriptBindingEnabled = true;
                    CefSharpSettings.WcfEnabled = true;
                    chromeBrowser.JavascriptObjectRepository.Register("dev_form_class", new DevForm_class(chromeBrowser, this), isAsync: false);
                }
            };
        }



        private void Form1_Load(object sender, EventArgs e)
        {
            chromeBrowser.ShowDevTools();
        }
        public void InitializeChromium()
        {
            CefSettings settings = new CefSettings();
            // Initialize cef with the provided settings
            String page = string.Format(@"{0}\htmlres\test.html", Application.StartupPath);
            if (!File.Exists(page))
            {
                MessageBox.Show("Error The html file doesn't exists : " + page);
            }
            // Initialize cef with the provided settings
            Cef.Initialize(settings);

            chromeBrowser = new ChromiumWebBrowser(page);
            // Add it to the form and fill it to the form window.
            this.Controls.Add(chromeBrowser);
            chromeBrowser.Dock = DockStyle.Fill;

            BrowserSettings browserSettings = new BrowserSettings();
            browserSettings.FileAccessFromFileUrls = CefState.Enabled;
            browserSettings.UniversalAccessFromFileUrls = CefState.Enabled;
            chromeBrowser.BrowserSettings = browserSettings;
        }

        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            Cef.Shutdown();
        }
    }
}


империческим путем до меня приходит понимание что проблема в этом месте
Код

            chromeBrowser.IsBrowserInitializedChanged += (sender, args) =>
            {
                if (chromeBrowser.IsBrowserInitialized)
                {
                    CefSharpSettings.LegacyJavascriptBindingEnabled = true;
                    CefSharpSettings.WcfEnabled = true;
                    chromeBrowser.JavascriptObjectRepository.Register("dev_form_class", new DevForm_class(chromeBrowser, this), isAsync: false);
                    // chromeBrowser.ExecuteJavaScriptAsync("alert('All Resources Have Loaded');");
                }
            };



есть вот такая ошибка

Цитата

"WhaBot_chrom.exe" (CLR v4.0.30319: WhaBot_chrom.exe). Загружено "C:\Windows\Microsoft.Net\assembly\GAC_MSIL\mscorlib.resources\v4.0_4.0.0.0_ru_b77a5c561934e089\mscorlib.resources.dll". Сборка модуля выполнена без символов.
Необработанное исключение: System.Exception: The ChromiumWebBrowser instance creates the underlying Chromium Embedded Framework (CEF) browser instance in an async fashion. The undelying CefBrowser instance is not yet initialized. Use the IsBrowserInitializedChanged event and check the IsBrowserInitialized property to determine when the browser has been initialized.


помогите с решением(((

Это сообщение отредактировал(а) nezabor - 19.4.2020, 09:10
--------------------
Бесплатно о сайтах
PM MAIL WWW Skype   Вверх
nezabor
  Дата 20.4.2020, 07:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесной житель...
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 17.4.2008
Где: Москва

Репутация: нет
Всего: нет



оказалось
Код

 private void Form1_Load(object sender, EventArgs e)
        {
            chromeBrowser.ShowDevTools();
        }

это лишнее...
--------------------
Бесплатно о сайтах
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1000 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.