Вызовите функцию JavaScript от C++

Мы используем их все время в Переполнении стека.

можно также интересоваться обсуждением Свойства по сравнению с Общедоступными переменными . По моему скромному мнению, это действительно, что это - реакция на, и с этой целью, это является большим.

6
задан msoft 17 May 2016 в 15:49
поделиться

3 ответа

Самый простой подход - использовать execScript () в интерфейсе IHTMLWindow2 .

Чтобы вы могли получить интерфейс IHTMLDocument2 из своего CDHTMLDialog , вызвав GetDHtmlDocument ], затем получите parentWindow из IHTMLDocument2 . Родительское окно будет иметь интерфейс IHTMLWindow2 , который поддерживает execScript () .

Может быть более простой способ получить интерфейс IHTMLWindow2 из вашего CDHTMLDialog, но я привык к работе на более низком уровне.

3
ответ дан 17 December 2019 в 02:30
поделиться

the SpiderMonkey library can "Call a JavaScript function from C++", please refer to

http://egachine.berlios.de/embedding-sm-best-practice/ar01s02.html#id2464522

but in your case, maybe this is not the answer.

2
ответ дан 17 December 2019 в 02:30
поделиться

Чтобы дать вам подсказку - внедрение javascript в серверных технологиях обычно выполняется посредством массовой загрузки при запуске (GWT) или вводится, когда HTML создается и обслуживается каждое сообщение -назад (ASP.NET). Важным моментом обоих подходов является то, что они внедряют вызовы javascript где-нибудь на странице (или в отдельный файл .js, связанный в HTML, в случае GWT) , когда генерирует HTML страница .

Даже если вы занимаетесь разработкой win (похоже, что вы работаете с MFC), возможно, вам придется вставить вызов метода js в HTML, а затем загрузить (или перезагрузить если вы хотите взаимодействовать с html из вашего приложения MFC) HTML-файл в вашем CHTMLDialog.

Я не вижу другого способа добиться этого (возможно, я просто не знаю о некоторых подходящих нестандартных решениях). box), кроме редактирования HTML и (повторной) загрузки - что довольно удобно и работоспособно, если вам нужно однажды вызвать свой js-метод или просто ввести какую-то логику обработки событий. Может быть немного больно, если вам нужно взаимодействовать со страницей из вашего приложения MFC. В этом случае вам нужно повторно сгенерировать свой HTML и перезагрузить его в своем CHTMLDialog.

В любом случае вы можете просто добавить какой-то заполнитель в свой HTML-файл, найти его и заменить своим кодом javascript, а затем загрузить страницу в вашем CHTMLDialog:

onclick = "__ my_Javascript_Call_HERE __"

1
ответ дан 17 December 2019 в 02:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: