Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
3 / 3 / 0
Регистрация: 22.11.2019
Сообщений: 55

Добавить window.addEventListener в webbrowser

27.02.2020, 05:25. Показов 1099. Ответов 10

Студворк — интернет-сервис помощи студентам
Привет всем, вопрос был задан в ветке С#, но он в равной степени относится и к JS.
Продублирую его здесь. Да простят меня админы если это делать нельзя. (Ну или не простят -_-).

Перейду сразу к вопросу, на сайте есть такой код:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
window.addEventListener('message', function(e) {
            if (typeof e.data == 'object') {
                if(e.data.type == 'callVipPay'){
                    callVipPay(e.data);
                }else if(e.data.type == 'callPay'){
                    callPay(e.data);
                }else if(e.data.type == 'support'){
                    openSupport(e.data);
                }
            }
        },false);
события из Flash передаются в виде события на parent, где его обрабатывает указанный код.
Дело в том, что я отловил передающее окно, и запустил его отдельно, убрав всю рекламу и ид с родительского сайта.
Необходимые скрипты переданы:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
HtmlElement head = webBrowser1.Document.GetElementsByTagName("head")[0];
            HtmlElement scriptEl = webBrowser1.Document.CreateElement("script");
            IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement;
            
            element.text = "function callPay() { window.external.callPay('"+callPay+"') }";  
            head.AppendChild(scriptEl);
 
            element.text = "function callVipPay() { window.external.callVipPay('" + callVIPPay + "') }";
            head.AppendChild(scriptEl);
 
            element.text = "function openSupport() { window.external.openSupport('"+CSLink+"') }";
            head.AppendChild(scriptEl);
 
            element.text = "function ClearCache() { window.external.clearCache() }";
            head.AppendChild(scriptEl);
Проблема заключается в прослушке, пробовал передать ее так-же как и обычные скрипты:
C#
1
2
3
4
HtmlElement head = webBrowser1.Document.GetElementsByTagName("head")[0];
            HtmlElement scriptEl = webBrowser1.Document.CreateElement("script");
            scriptEl.SetAttribute("text", script_listener_text.Text);
            head.AppendChild(scriptEl);
Оно не работает, для проверки, чтобы убедиться что я сделал все "верно" добавил вот такую строчку
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
window.addEventListener('message', function(e) {
            if (typeof e.data == 'object') {
                if(e.data.type == 'callVipPay'){
                    callVipPay(e.data);
                }else if(e.data.type == 'callPay'){
                    callPay(e.data);
                }else if(e.data.type == 'support'){
                    sayHello(e.data);
                }else if(e.data.type =="fiftyLevel"){
                    fiftyLevel(e.data);
                }
            }
        },false);
function sayHello() { alert('hello') }
И по вызову
C#
1
webBrowser1.Document.InvokeScript("sayHello");
привет он все-же передает, но не реагирует на события из флеш.
Решил пойти другим путем и добавил:
C#
1
2
3
4
5
webBrowser1.Document.AttachEventHandler("message", this.rechargeToolStripMenuItem1_Click);
            webBrowser1.Document.AttachEventHandler("object", this.rechargeToolStripMenuItem1_Click);
            webBrowser1.Document.AttachEventHandler("callVipPay", this.rechargeToolStripMenuItem1_Click);
            webBrowser1.Document.AttachEventHandler("callPay", this.rechargeToolStripMenuItem1_Click);
            webBrowser1.Document.AttachEventHandler("ondblclick", this.rechargeToolStripMenuItem1_Click);
для проверки, разумеется оно не делает что мне нужно, но вот двойной клик он обрабатывает на кромке, но не на флеш. Т.е. если добавить его на первоначальный сайт, то двойной клик по не-флеш отработает, но если отловить флеш в отдельное окно то двойной клик не отработает, что, в теории, понятнол, ведь я передал его во флеш объект.
Т.Е. вопрос в том, как правильно отловить события, которые обрабатывал изначальный скрипт.
Вохможно ли, что, поскольку я запустил его по прямой ссылке (....game.jsp?...), то событие он передает мне на форму или браузер, но не webBrowser1.Document? Может есть смысл сделать "пустую обертку" и вставить туда окошко с игрой, и тогда он будет передавать события на обертку, т.е. в webbrowser.document, и мои скрипты, или AttachEventHandler его перехватят?
Заранее спасибо.
PS. На всякий случай скину webbrowser.document страницы, после перехвата:
Кликните здесь для просмотра всего текста
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<html debug="true">
<head>
<link rel="icon" href="/favicon.ico" mce_href="/favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="/favicon.ico" mce_href="/favicon.ico" type="image/x-icon">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Dragonlord</title>
<!-- Google Tag Manager -->
<!-- Global site tag (gtag.js) - Google Ads: 717271119 -->
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-717271119"></script>
 
<script>
if(document.domain.indexOf("10.10.10") < 0)
{
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
 
  gtag('config', 'AW-717271119');
  
}
</script>
<!-- End Google Tag Manager -->
 
<!-- Facebook Pixel Code -->
<script>
if(document.domain.indexOf("10.10.10") < 0)
{
!function(f,b,e,v,n,t,s)
{
   if(f.fbq)
   {
      return;
   }
 
   n=f.fbq=function(){
       n.callMethod.apply(n,arguments):n.queue.push(arguments)
   };
   
   if(!f._fbq)
   {
     f._fbq=n;
   }
 
   n.push=n;
   n.loaded=!0;
   n.version='2.0';
   n.queue=[];
   t=b.createElement(e);
   t.async=!0;
   t.src=v;
   s=b.getElementsByTagName(e)[0];
   s.parentNode.insertBefore(t,s)
}(window,document,'script','https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '921561238182864'); 
fbq('track', 'PageView');
}
</script>
 
<noscript>
 <img height="1" width="1" src="https://www.facebook.com/tr?id=921561238182864&ev=PageView&noscript=1"/>
</noscript>
 
<script type="text/javascript" src="scripts/swfobject.js"></script>
<script type="text/javascript" src="scripts/dnkv9.js"></script>
<script type="text/javascript" src="scripts/french_api_4.js"></script>
    
<style> 
  body,html
  {
    margin: 0px auto;
    padding: 0px; 
    /*background-position:center center;*/
    overflow-x:hidden;
    font-size:14px;
    color:#FF0000;
    text-align:center;
  }
  #wrap { text-align:left; margin:0 auto; }
</style> 
</head>
 
<body scroll="no"  bgcolor="#000000" onLoad="initSwf();"  style="margin:0px;padding:0px;" >
    
    <!-- Google Tag Manager -->
    <!-- Event snippet for 转化注册 conversion page -->
    <script> gtag('event', 'conversion', {'send_to': 'AW-717271119/dq2RCMPUgq8BEM_ggtYC'});</script>
    <!-- End Google Tag Manager (noscript) -->
 
    <div id="Main" name="Main" style="width:100%;height:100%;" >
        <div id="MainGame" name="MainGame" style="center no-repeat;height=100%;width:100%;background-color:#FFFFFF;">
        <p>
            To Stelle zum Lesen der Seite sicher, dass Adobe Flash Player Version 
            11.4.0 oder höher installiert wurde. 
        </p>
        <script type="text/javascript"> 
        document.write("<a href='http://www.adobe.com/go/getflashplayer'><img src='./get_flash_player.gif' alt='Get Adobe Flash player' /></a>" );
        </script>
        </div>
    </div>
  </div>
</body>
</html>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.02.2020, 05:25
Ответы с готовыми решениями:

Window.onload/addEventListener
Почему второй обработчик срабатывает сразу при загрузке страницы, а не при клике, как первый? Что нужно сделать, чтобы он срабатывал при...

Window.addEventListener функция с параметрами
window.addEventListener('resize', function(l, t, rw, rh) { alert(l + '; ' + t + '; ' + rw + '; ' + rh); }, false); можно ли в...

Можно ли добавить addEventListener к конкретной колонке таблицы?
Подскажите плс, возможно ли добавить addEventListener к конкретной колонке таблицы только в тег tbody, но thead и tfoot не трогать. По...

10
296 / 149 / 67
Регистрация: 22.02.2017
Сообщений: 592
27.02.2020, 07:41
dolgushin, Java и JavaScript полностью разные языки программирования и они не родственники, их сравнивать так же глупо как говорить о одинаковости C++ и С# мол а че в названии на символ отличается.
Flash мертвая технология и давно объявлено о дате ее закрытия до которой вроде годик остался, про синхронизацию JavaScript и ActionScript вам могут помочь только олдскулы но тех кто помнит вы уже не найдете, они давно перестроились под другие технологии, работа не стоит.
0
3 / 3 / 0
Регистрация: 22.11.2019
Сообщений: 55
27.02.2020, 08:05  [ТС]
Цитата Сообщение от Nidl Посмотреть сообщение
Java и JavaScript полностью разные языки программирования и они не родственники
Верю, но тему про JS я тут не нашел. Буду рад перейти туда. Пойду поищу про ActionScript коль вы тут ее упомянули.
Flash - да, мертвая, но закрываться она не собирается (за исключением гугл хром, конечно), но проекты на ней продолжают жить, и будут жить пока приносят деньги, разумеется что никто под нее ничего нового писать не будет (в здравом уме и светлой памяти, естественно).
Ну в любом случае спасибо за наводку.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
27.02.2020, 08:07

Не по теме:

Цитата Сообщение от dolgushin Посмотреть сообщение
тему про JS я тут не нашел
Теперь-то нашел?

0
3 / 3 / 0
Регистрация: 22.11.2019
Сообщений: 55
27.02.2020, 08:12  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Теперь-то нашел?
Ем. да, готов поклясться что ее не было. Или мне нужно к окулисту. Х_Х
До этого писал в Java Сети, но поскольку моя первая строчка имела неосторожность содержать "в JS я новичок" меня кинули в Java для нупов, так что теперь не умничаю и сижу здесь xD

Update:
Если перейти по ссылке - форум программистов из раздела C#,то JS там нет, вот в чем подвох.
1
 Аватар для diadiavova
7258 / 2605 / 744
Регистрация: 11.04.2015
Сообщений: 4,150
Записей в блоге: 43
27.02.2020, 10:37
dolgushin, довольно сложно сказать, почему неизвестно какая страница перестала работать, после того как ты ее раскурочил. Могу только обратить твое внимание несколько подозрительных для меня моментов, но подозреваю, что этого будет недостаточно.
Во-первых, очень странный способ добавления новых скриптов на страницу. Ты создаешь один объект скрипта, инициируешь его кодом, добавляешь. После этого добавляешь в этот же самый объект новый код и этот же объект добавляешь на страницу. Тут нужно либо весь код запихнуть в объект сразу, либо для каждой функции создавать новый объект скрипта. Я предположил, что это могло бы сработать, но вот такой код в IE отработал только частично
Кликните здесь для просмотра всего текста
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
 
<body>
    <script>
        var script = document.createElement("script");
        script.text = "function hello(){alert ('Hello, как там тебя');}";
        var head = document.getElementsByTagName("head")[0];
        head.appendChild(script);
        script.text = "function nichego(){alert('Nichego');}";
        head.appendChild(script);
        hello();
        nichego();
    </script>
</body>
 
</html>
А именно: первая функция запустилась, а о второй было ничего не известно. В прнинципе, чего-то подобного и следовало ожидать.

Во-второых, тебе следовало бы поинтересоваться, что такое событие message. Если в двух словах, то происходит оно когда из одного окошка (фрейма) передается сообщение в другое. Вот ты целевое окно (родительский фрейм) удалил, и что ты думаешь, что страничка, которую ты оставил после этого будет отправлять сообщение самой себе? Или ты как-то этот вопрос обработал?

В-третьих, сам WebBrowser. Этот элемент управления работает на движке trident (IE-шном), причем по умолчанию в режиме совместимости аж с 7-ой версией IE. Если на странице нет специального метатега, указывающего более позднюю версию, то отображаться там будет все по старым правилам, которые, возможно, уже не поддерживаются страницей, даже несмотря на то, что там до сих пор флеш используется.

Это то, что бросается в глаза, не факт, что проблема именно в этом.

Добавлено через 3 минуты
Относительно обертки. Я думаю, что разумнее было бы оставить страницу как есть, просто все лишнее либо скрыть, либо запретить загрузку. Внешние ресурсы можно не загружать обработав событие Navigating браузера и просто проверять адреса, откуда что грузится. Для элементов, внедренных в страницу можно назначить стили, чтобы они не отображались. В принципе так можно убрать все, кроме нужного, при этом страница будет работать, без всех этих плясок с бубнами.
1
3 / 3 / 0
Регистрация: 22.11.2019
Сообщений: 55
27.02.2020, 13:24  [ТС]
Если вы про этот кусок кода, то он работает отлично.
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
HtmlElement head = webBrowser1.Document.GetElementsByTagName("head")[0];
            HtmlElement scriptEl = webBrowser1.Document.CreateElement("script");
            IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement;
            
            element.text = "function callPay() { window.external.callPay('"+callPay+"') }";  
            head.AppendChild(scriptEl);
 
            element.text = "function callVipPay() { window.external.callVipPay('" + callVIPPay + "') }";
            head.AppendChild(scriptEl);
 
            element.text = "function openSupport() { window.external.openSupport('"+CSLink+"') }";
            head.AppendChild(scriptEl);
 
            element.text = "function ClearCache() { window.external.clearCache() }";
            head.AppendChild(scriptEl);

По факту окошко там есть, и передается оно на него. Проблема именно в пост сообщениях. Моя вина, 3 версии сайта были сделаны по определенному методу, а в 4 переделали на события - post. Обратил внимание уже позже написания этого поста. Когда спрашивал айтишника он даже забыл упомянуть об этом. Так что смотрю в этом направлении. Нужно принять parent.postMessage(). Пойду разбираться дальше. Если подкините еще статей с примерами на эту тему буду благодарен.
Отключить то можно, и я так делал изначально, navigating по ненужным фреймам тоже можно отключить. Но проблема в том, что картинки, которые все арвно грузятся, хоть и не отображаются. В итоге слишком долго работает. возможно проще написать свою пустую страницу с нужными JS и засунуть туда нужный фрейм. Но пока попробую с вариантом, который уже работает для 3 версий.

Добавлено через 30 минут
и PS. именно так страница и не будет работает в webbrowser. половина - ошибка скриптов, половина просто не реагирует. менял на 11 IE и .NET 4.8 - песня та-же. Поэтому приклеил скрипты ручками, предварительно скопировав нужное с главного сайта. Кстати, может знаете, есть ли возможность вклеить поддержку JAVA в приложение, или придется использовать другой браузер, у которого она уже есть? Ведь если IE JAVA не установлен на машине, то запускаться он не будет. Можно, конечно добавить его в инсталлер, но не хотелось бы заставлять "устанавливать" приложение, уж лучше при запуске распаковать его в директорию и использовать его там.
0
 Аватар для diadiavova
7258 / 2605 / 744
Регистрация: 11.04.2015
Сообщений: 4,150
Записей в блоге: 43
27.02.2020, 14:08
Цитата Сообщение от dolgushin Посмотреть сообщение
Если вы про этот кусок кода, то он работает отлично.
Про него. Но я, в принципе, ничего не утверждал, просто это один из подозрительных моментов, о чем я и написал.
Цитата Сообщение от dolgushin Посмотреть сообщение
Если подкините еще статей с примерами на эту тему буду благодарен.
На какую? Отправка сообщений? Так там вроде все что надо есть.
Цитата Сообщение от dolgushin Посмотреть сообщение
Отключить то можно, и я так делал изначально, navigating по ненужным фреймам тоже можно отключить. Но проблема в том, что картинки, которые все арвно грузятся, хоть и не отображаются.
Именно поэтому я и упомянул событие Navigating, помимо сокрытия. Обрати внимание на аргумент обработчика, у него есть два полезных свойства: Url и Cancel. Если с первого ничего не хочешь грузить - присваивай второму true.
Цитата Сообщение от dolgushin Посмотреть сообщение
В итоге слишком долго работает. возможно проще написать свою пустую страницу с нужными JS и засунуть туда нужный фрейм.
Если фреймы должны взаимодействовать, то браузером в таком случае они будут восприниматься как загруженные из разных доменов и какой-то функционал опять-таки может отхряснуть. Хотя там вроде тоже это решается, если в реестре пошерудить.
Цитата Сообщение от dolgushin Посмотреть сообщение
именно так страница и не будет работает в webbrowser.
Именно как? Я советовал с помощью Navigating обрубить рекламу и прочие ненужности, а элементы страницы просто скрыть с помощью стилей. Каким образом это может повлиять на работу? Тут функционал практически не затрагивается.
Цитата Сообщение от dolgushin Посмотреть сообщение
Кстати, может знаете, есть ли возможность вклеить поддержку JAVA в приложение, или придется использовать другой браузер, у которого она уже есть?
А у какого браузера уже есть поддержка явы? Ты имеешь в виду апплеты что ли? Они разве не умерли еще?
Цитата Сообщение от dolgushin Посмотреть сообщение
Ведь если IE JAVA не установлен на машине, то запускаться он не будет.
Да я думаю, что и на других то же самое. Раньше у майкрософт была собсвенная ява-машина, так что на ней апплеты и запускались и вроде ничего устанавливать не надо было. Но потом они долго судились с сан из-за нее и в конце концов вынуждены были убрать. Так что, думаю, тут дело вовсе не в браузерном движке. Ну, если я правильно вопрос понял, разумеется.
0
3 / 3 / 0
Регистрация: 22.11.2019
Сообщений: 55
02.03.2020, 04:29  [ТС]
Что-то цитаты у меня не вставляются. Если картинка находится на родном сайте, то Navigating ее не отключить, только если это левый фрейм, как я понял.

Тут функционал практически не затрагивается.
Именно, так и должно быть, но почему-то скрипты приказали долго жить и отрубились, т.е. если запустить страницу в IE то нажатя кнопок и тд обрабатывается скриптами, а если запустить в webbrowser то ничего не работает. Поэтому скрипты пришиваю ручками, и решил выйти в отдельное окно, чтобы грузилось меньше

А у какого браузера уже есть поддержка явы? Ты имеешь в виду апплеты что ли? Они разве не умерли еще?
Ну может есть возможность вставить компонент и насильно указать что ява тут, а не искать ее предустановленную на машине, точно знаю, что так сделать можно, на как именно не знаю. Пока в инете инфы не нашел.

По поводу получение postmessage походу это обрабатывает beforenavigating2, сейчас посмотрю подробнее эту метод, может что нарою.
0
 Аватар для diadiavova
7258 / 2605 / 744
Регистрация: 11.04.2015
Сообщений: 4,150
Записей в блоге: 43
02.03.2020, 19:25
Цитата Сообщение от dolgushin Посмотреть сообщение
Если картинка находится на родном сайте, то Navigating ее не отключить, только если это левый фрейм, как я понял.
Да, судя по всему это не так просто. Вот вопрос на мсдн How to prevent loading images into WebBrowser control in C# Winforms?
Там в последнем ответе пишут, что на шарпе это сделать непросто. Надо запрашивать интерфейсы через QueryInterface, документация по этим интерфейсам почему-то уже недоступна и т. д. Ну что тут можно сказать... в других веб-движках это сделать проще, так что есть смысл подумать об использовании чего-то другого.
Цитата Сообщение от dolgushin Посмотреть сообщение
Ну может есть возможность вставить компонент и насильно указать что ява тут
Где тут? Апплеты никогда не выполнялись средствами браузера, для них нужна ява. Раньше это была JVM или ее аналог от майкрософт, сейчас это по всей видимости JRE, если они вообще еще поддерживаются, я о них давно ничего не слышал. Браузеры этого не делают, поскольку апплет - это внешний компонент.
0
3 / 3 / 0
Регистрация: 22.11.2019
Сообщений: 55
06.03.2020, 12:07  [ТС]
оказалось все проще чем я думал. В коде сайта нашел место откуда посылается запрос:
JavaScript
1
2
var postData = {...}
parent.postMessage(postData,"*")
и предположил, что это обычный script, и тут на меня снизошло озарение.
Возник вопрос как обработать postData, ведь мне приходил класс _Object. Поиски в нем прошли безуспешно. Тогда решил пойти обходным путем.
C#
1
2
element.text = "function postMessage(e,star) { window.external.test(e.type) }";
head.AppendChild(scriptEl);
и финал:
C#
1
2
3
4
public void test(string Type)
{
MessageBox.Show(Type);
}
боже... ну хоть разобрались чуток с JS, и то, славно.

Добавлено через 12 минут
diadiavova,
Во-вторых, тебе следовало бы поинтересоваться, что такое событие message. Если в двух словах, то происходит оно когда из одного окошка (фрейма) передается сообщение в другое. Вот ты целевое окно (родительский фрейм) удалил, и что ты думаешь, что страничка, которую ты оставил после этого будет отправлять сообщение самой себе? Или ты как-то этот вопрос обработал?
Воо, если другими словами, то происходит оно когда из одного окошка (фрейма) вызывается скрипт postMessage. Исходя из этого можно обработать его не как сообщение(MessageEvent, как говорится на предоставленной вами странице), а как скрипт. И да, все работает отлично. Вероятно можно и так и так. Забавно это.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.03.2020, 12:07
Помогаю со студенческими работами здесь

Как на C# добавить новый метод к Window.External?
Как на C# добавить новый метод к Window.External. В COMе это делалось с помощью создания IDispatch. А как в .NETe?

Добавить скрипт в webBrowser
Здравствуйте, подскажите как выполнить скрипт в webBrowser? у меня в webBrowser загружается страница и на ней надо будет выполнить мой...

Вызов Window.ShowDialog() срабатывает как Window.Show(), т.е. я могу нажимать на другие окна
Здравствуйте, уважаемые форумчане. Столкнулся с проблемой. У меня есть окно, которое выполняет некоторые действия всё время работы...

Window является свойством глобального объекта Window
если объект window является свойством глобального объекта Window, то почему запись: Window.window // =&gt; undefined

Как добавить прокси в WebBrowser
В ИЕ вроде можно прокси устанавливать или нет я не помню. Нужно прокси прописать в WebBrowser????


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru