.NET webBrowser1.Document.InvokeScript 不执行 无效

简介: 本文目录1. 问题2. 分析3. 解决

1. 问题

最新在使用.NET开发的自助设备程序调用内嵌网页时,发现通过webBrowser1.Document.InvokeScript调用网页js方法有的会失效。


2. 分析

有的可以执行,有的不能执行,必然有问题。仔细考虑了下,不执行的js是否是跟网页加载时间有问题,当调用webBrowser1.Document.InvokeScript方法时如果网页还没加载完毕,肯定js发那个发就没法执行了。


3. 解决

看了下webBrowser控件的事件,有一个DocumentCompleted方法,Visual Studio里面对其描述为在Web浏览器控件中承载的文档全部加载后发生,也就是说网页加载完毕后会回调这个方法,所以将我们的InvokeScript写在这里就OK了。


示例如下:


  private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)

       {

           webBrowser1.Document.InvokeScript("print", new string[] { "hello world" });

       }

相关文章
|
Web App开发 JavaScript 前端开发
JavaScript 技术篇-chrome浏览器读取剪切板命令document.execCommand(‘paste‘)返回false原因及解决方法
JavaScript 技术篇-chrome浏览器读取剪切板命令document.execCommand(‘paste‘)返回false原因及解决方法
938 0
JavaScript 技术篇-chrome浏览器读取剪切板命令document.execCommand(‘paste‘)返回false原因及解决方法
|
.NET C# 开发框架
ASP.Net刷新页面后自动滚动到原来位置方法汇总
1.设置Page中的MaintainScrollPositionOnPostback属性为true         A>.页面里有MaintainScrollPositionOnPostback,默认是false,设为true即可(页面级) <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.a
1359 0
|
Web App开发 .NET C#
asp.net中获取Layer弹出层返回值
1、MainPage.aspx中点击按钮利用Layer弹出层,代码如下: $(function () { layer.config({ extend: ['skin/espresso/style.css'], //加载新皮肤 skin: 'layer-ext-espresso' //一旦设定,所有弹层风格都采用此主题。
1308 0