插入到脚本字符串中的 JavaScript 是否可以由 WebBrowser 对象正常调用
Can JavaScript inserted into a Script string be called as normal by a WebBrowser object?
我可能没有正确地问这个问题,但我有一个WebBrowser,里面有非常详细的脚本。我正在使用一些字符串操作将我自己的JavaScript字符串插入其中(只是一个简单的window.external.(); line),希望它会调用它,但到目前为止,它还没有。
这样:
string script = <WebBrowserObject>.Document.GetElementsByTagName("script")[3].InnerText;
script = script.Insert(script.IndexOf(<Line to place function call after>) + <length of that line>, <string variable holding my function call>);
<WebBrowserObject>.Document.GetElementsByTagName("script")[3].InnerText = script;
有一个反复触发的 JavaScript 函数,我需要与显示倒数计时器的表单显示同步。
我还有:
<WebBrowserObject>.ObjectForScripting = this;
没有显示 JavaScript 错误,我已经能够通过添加 window.external 来绑定类似 JavaScript 的响应。();行到输入按钮单击属性和查看的结果。现在,该函数唯一应该做的就是在输出窗口中写一行以确保它正常工作。这种方法是实现此预期结果的正确方法吗?有没有人有更好的方法?
我所知,一旦运行了脚本标签的内容,你就不能再次运行它(你也许可以重置它关于内容是否已运行的标志,但我确定是否存在,那是浏览器特定的事情)。 我认为您需要做的是添加一个带有所需代码的新脚本标签。 如果 WebBrowser 控件的界面与您在 DOM 接口时在 javascript 中所做的类似,您可以创建一个脚本元素,将文本添加到该元素中,然后将其附加到 DOM 的某个位置(如 head
),然后它应该运行。
在纯JavaScript中,它会是这样的。
var head1 = document.getElementsByTagName('head')[0]
var script1 = document.createElement('script');
script1.innerText = "alert('hey');"; //javascript to run.
head1.appendChild(script1)
当然,当你完成时,你可能应该h1111.removeChild(script111)
只是为了防止 DOM 积累脚本...... 我不知道在某些浏览器中何时可以安全地删除脚本标签是否有任何特别之处......您可能会立即删除它(我似乎对阅读某些建议稍等片刻的情况有一些模糊的、可能是不正确的回忆)。
- 引用对象中的通用值
- jQuery匹配JSON对象的部分文本
- 节点导出返回一个空对象
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 全局变量和全局对象的属性之间有什么区别吗
- 比较从函数和生成的日期对象
- Javascript,访问一个主要对象模块模式中的每个对象
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 调整窗口大小时,可拖动的对象会出现在容器外部
- 如何使用javascript从主svg对象动态创建svg视图框
- 如何从C#.Net Webbrowser对象访问javascript变量
- 使用 WebBrowser.Document.InvokeScript 调用 javascript 对象方法
- 在WP7 WebBrowser控件中从Javascript调用.net对象
- 为窗口提供一个VB6对象.在webbrowser托管的页面中
- 插入到脚本字符串中的 JavaScript 是否可以由 WebBrowser 对象正常调用
- 在WebBrowser控件中通过InvokeScript返回字符串或自定义javascript对象的数组
- 本地加载的HTML/Javascript文件在c# WebBrowser对象不能正确加载
- 使用window.external将javascript Date对象传递给c# WebBrowser控件