首页 > 后端开发 > C++ > 如何将JavaScript正确注入HTML文档以避免' NotSupportedException”?

如何将JavaScript正确注入HTML文档以避免' NotSupportedException”?

DDD
发布: 2025-01-26 21:21:09
原创
272 人浏览过

How to Correctly Inject JavaScript into an HTML Document to Avoid `NotSupportedException`?

在HTML文档中注入JavaScript的方法

通过在网页中注入JavaScript代码,可以利用动态元素增强网页功能。然而,使用标准的HTMLDocument方法可能会遇到错误。本指南提供了解决此问题的方案。

问题所在

以下代码示例演示了尝试将JavaScript注入文档:

<code>string newScript = textBox1.Text;
HtmlElement head = browserCtrl.Document.GetElementsByTagName("head")[0];
HtmlElement scriptEl = browserCtrl.Document.CreateElement("script");
lblStatus.Text = scriptEl.GetType().ToString();
scriptEl.SetAttribute("type", "text/javascript");
head.AppendChild(scriptEl);
scriptEl.InnerHtml = "function sayHello() { alert('hello') }";</code>
登录后复制

然而,访问scriptEl的InnerHtml属性会抛出NotSupportedException异常。这表明HtmlElement类型不支持为脚本元素设置内部HTML。

解决方案

为了解决这个问题,我们需要访问底层的IHTMLScriptElement接口。以下更新后的代码片段演示了这种方法:

<code>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");</code>
登录后复制

解释

  1. 获取文档的头部元素。
  2. 创建一个新的脚本元素。
  3. 从脚本元素的DomElement属性中检索底层的IHTMLScriptElement接口。
  4. 使用JavaScript代码设置脚本元素的text属性。
  5. 将脚本元素附加到文档的头部。
  6. 从IHTMLScriptElement接口执行JavaScript函数以激活注入的脚本。

这种方法允许您成功地将JavaScript注入网页并动态地与它的元素交互。

以上是如何将JavaScript正确注入HTML文档以避免' NotSupportedException”?的详细内容。更多信息请关注PHP中文网其他相关文章!

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