Wywołanie funkcji w C++ z JS załadowanego do TCppWebBrowser

Odpowiedz Nowy wątek
2018-11-22 13:49
0

Witam, mam nadzieję że ktoś pomoże.

Mam prosty skrypt html - przycisk którego kliknięcie wywołuje funkcję. Skrypt jest załadowany do komponentu TCppWebBrowser (Borland C++ 6.0) gdzie muszę albo przechwycić event albo podać jakoś funkcję która będzie wywołana.

Czy jest to w ogóle wykonalne? Jeśli tak, jak to mogę wykonać?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<button type="button" onclick="myFunction()">Test</button>
<script>
    function myFunction() {
        console.log('clicked');
        window ["testFunctionCall"]();
    }
</script>
</body>
</html>
edytowany 1x, ostatnio: furious programming, 2018-11-23 19:52

Pozostało 580 znaków

2018-11-23 10:46
0

Nie znam tej kontrolki, ale jeśli się nie mylę, bez dłubaniny w COM się nie obędzie -> interfejsy IDispatch i IWebBrowser2

Pozostało 580 znaków

2018-11-23 11:09
0

To na pewno, wywołuję już funkcje w JS poprzez COM i powyższe interfejsy. Jak na razie wiem jak wywołać funkcję w JS, nie wiem czy da się odczytać zwracaną wartość bo tylko wysyłam póki co w jedną stronę. Wiem też jak odczytać wartość zmiennej w JS. Ale nie wiem jak sprawdzać zdarzenia takie jak kliknięcie przycisku na stronie. Bardzo ciężko znaleźć jakikolwiek przykład.

Pozostało 580 znaków

2018-11-23 11:23
0

Jak wywołujesz funkcję przez IDispatch, to (chyba) powinieneś móc odebrać zwracaną wartość.

Pozostało 580 znaków

2018-11-23 11:26
0

Pewnie tak, ale blokadę mam z obsługą zdarzeń :/ Czy ktoś ma jakiś przykład jak reagować na eventy typu button klik?

Pozostało 580 znaków

2018-11-23 11:35
0

Nie zdziwiłbym się, gdyby bindowanie kodu C++ polegało na zrobieniu własnej implementacji interfejsu IDispatch. Szukaj czegoś w tym kierunku.

Pozostało 580 znaków

2018-11-23 16:07
1

Jeśli nie jesteś "przyspawany" do Borlanda to mogę polecić Qt + QWebEngine. Z tego co kojarzę, to za pomocą QWebChannel możesz zmapować sobie QObject i używać go bezpośrednio w kodzie JS.

Pozostało 580 znaków

2018-11-23 19:00
0

Niestety to musi być pod Borlandem 6.0 :/ Nie mój wybór. Nikt nie ma żadnego przykładu?

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0