首页 > web前端 > js教程 > 正文

如何在不使用 InnerHtml 的情况下将 JavaScript 注入 Web 浏览器控件?

Susan Sarandon
发布: 2024-11-19 18:45:03
原创
351 人浏览过

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

将 JavaScript 注入 Web 浏览器控件

问题:

我正在尝试注入JavaScript 脚本插入 WebBrowser 控件,但在设置脚本的 InnerHtml 属性时遇到错误 元素。有没有替代方法来实现这一点?

答案:

虽然原始尝试失败成功,但可以使用以下方法将脚本注入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");
登录后复制

说明:

  • 获取 IHTMLScriptElement 接口:

    • DomElement 属性公开底层 COM 对象。将其转换为 IHTMLScriptElement 可以访问文本属性。
  • 设置脚本文本:

    • 分配所需的 JavaScript 代码到正文
  • 调用脚本:

    • 在文档上调用 InvokeScript 来执行注入的脚本。

以上是如何在不使用 InnerHtml 的情况下将 JavaScript 注入 Web 浏览器控件?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板