Maison >interface Web >js tutoriel >Comment injecter du JavaScript dans un contrôle WebBrowser sans utiliser InnerHtml ?

Comment injecter du JavaScript dans un contrôle WebBrowser sans utiliser InnerHtml ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-19 18:45:03394parcourir

How to Inject JavaScript into a WebBrowser Control Without Using InnerHtml?

Injecter du JavaScript dans un contrôle de navigateur Web

Question :

J'essaie d'injecter un Script JavaScript dans un contrôle WebBrowser, mais rencontre des erreurs lors de la définition de la propriété InnerHtml de l'élément de script. Existe-t-il une méthode alternative pour y parvenir ?

Réponse :

虽然原始尝试未能成功,但可以使用以下方法将脚本注入 DOM:

HtmlElement head = webBrowser1.Document.GetElementsByTagName("head")[0];
HtmlElement scriptEl = webBrowser1.Document.CreateElement("script");
IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement;
element.text = "function sayHello() { alert('hello') }";
head.AppendChild(scriptEl);
webBrowser1.Document.InvokeScript("sayHello");

Explication :

  • Obtenir l'interface IHTMLScriptElement :

    • La propriété DomElement expose le sous-jacent Objet COM. La diffusion de ceci vers IHTMLScriptElement permet d'accéder à la propriété text.
  • Définir le texte du script :

    • Attribuer le code JavaScript souhaité à la propriété text.
  • Invoke Script :

    • Appelez InvokeScript sur le document pour exécuter le script injecté.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn