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

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>
0

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

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.

0

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

0

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

0

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

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.

0

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

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