Мы используем их все время в Переполнении стека.
можно также интересоваться обсуждением Свойства по сравнению с Общедоступными переменными . По моему скромному мнению, это действительно, что это - реакция на, и с этой целью, это является большим.
Самый простой подход - использовать execScript () в интерфейсе IHTMLWindow2 .
Чтобы вы могли получить интерфейс IHTMLDocument2 из своего CDHTMLDialog , вызвав GetDHtmlDocument ], затем получите parentWindow из IHTMLDocument2 . Родительское окно будет иметь интерфейс IHTMLWindow2 , который поддерживает execScript () .
Может быть более простой способ получить интерфейс IHTMLWindow2 из вашего CDHTMLDialog, но я привык к работе на более низком уровне.
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.
Чтобы дать вам подсказку - внедрение 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 __"