区块链技术博客
www.b2bchain.cn

wpf webbrowser javascript回调 – javascript程序员分享

本文介绍了wpf webbrowser javascript回调 – javascript程序员分享,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

如果有javascript:

function calculateValues(callback)         {              window.external.getHistoryRange(0,1,"",function(res){                 var hist = eval(res);                 histCount = hist.historyCount;                 hist = hist.historyContent;                 if (histCount == 0)                 {                     return;                 }                 $("#history_table").show();                 var $row = addAlertHistoryRow(hist[0]);                 var rowHeight = $row.height();                 pageItemsCount = Math.floor(contentHeight / rowHeight);                 curPageNum = 0;                 $row.remove();                  if (callback) callback();             });           } 

在函数calculateValues(callback)中,回调参数为:

function(){statItempos = 0; gethistoryandshow(pageNum,startItemsPos,callback);} 

和与该脚本一起使用的c#代码(ObjectForScripting):

public string getHistoryRange(string strVar0 = "", string strVar1 = "", string strVar2 = "", string strVar3 = "")         {             string res = "";             using (DeskAlertsDbContext db = new DeskAlertsDbContext())             {                  var alerts = db.HistoryAlerts.OrderBy(a => a.ReciveTime)                     .Include(b => b.alert.WINDOW)                     .ToList();                 foreach (var alert in alerts)                 {                      res += ("{"id":" + System.Web.HttpUtility.JavaScriptStringEncode(alert.alert.Alert_id) +                             ","date":"" +                             System.Web.HttpUtility.JavaScriptStringEncode(                                 alert.ReciveTime.ToString(CultureInfo.InvariantCulture)) + "","alert":"" +                             System.Web.HttpUtility.JavaScriptStringEncode(alert.alerttext) + "","title":"" +                             System.Web.HttpUtility.JavaScriptStringEncode(alert.alert.Title) + "","acknow":"" +                             System.Web.HttpUtility.JavaScriptStringEncode(alert.alert.Acknown) + "","create":"" +                             System.Web.HttpUtility.JavaScriptStringEncode(alert.alert.Create_date) + "","class":"" +                             "1" + "","urgent":"" + System.Web.HttpUtility.JavaScriptStringEncode(alert.alert.Urgent) +                             "","unread":"" + Convert.ToInt32(alert.isclosed).ToString() + "","position":"" +                             System.Web.HttpUtility.JavaScriptStringEncode(alert.alert.Position) + "","ticker":"" +                             alert.alert.Ticker + "","to_date":"" +                             System.Web.HttpUtility.JavaScriptStringEncode(alert.alert.To_date) + ""},");                 }                  res = res.TrimEnd(','); //trim right ","                 res = "({"historyCount":" + alerts.Count.ToString() + ","historyContent":[" + res + "]});";                  Browserwindow.Wb.InvokeScript("eval", new object[] { strVar3 });                 Browserwindow.Wb.InvokeScript("CallbackFunction", new object[] { res });                  return res;             }          } 

在字符串上:“ Browserwindow.Wb.InvokeScript("eval", new object[] { strVar3 });
我尝试从javascript调用匿名函数,但出现错误。

问题是:如何使这种逻辑。 JS函数如何执行参数不同的函数。然后继续JS。如果我尝试给函数命名并调用它,则函数可以工作,但是全局上下文(if (callback) callback();)变得不可用

参考方案

您的回调函数名称不正确。

更换

Browserwindow.Wb.InvokeScript("CallbackFunction", new object[] { res }); 

Browserwindow.Wb.InvokeScript("calculateValues", new object[] { res }); 

在与WPF Web浏览器控件绑定的ObjectForScripting上调用方法时,网页UI锁定会出现一个奇怪的问题。进一步的研究使我们意识到整个UI(包括WPF应用程序而不是WebBrowser)都已锁定。使用的技术是带有Caliburn.Micro和Autofac的WPF。我在COM可见类上使用方法来推送到Caliburn.Micro提供的事件聚合器。进…

单击提交按钮后,我需要从网址中删除查询字符串值。我可以用jQuery做到这一点吗?当前网址:siteUrl/page.php?key=value 页面提交后:siteUrl/page.php 实际上,我已经从另一个带有查询字符串的页面着陆到当前页面。我需要在页面首次加载时查询字符串值以预填充一些详细信息。但是,一旦我提交了表格,我就需要删除查询字符串值。我已…

我的收藏中有以下文件{ "_id": ObjectId("54490b8104f7142f22ecc97f"), "title": "Sample1", "slug": "samplenews", "cat": &#03…

我正在尝试向Google地图添加多个标记。数据来自C#WPF。这是C#代码:private void Button_click(object sender, RoutedEventArgs e) { int[] lat = { 10, 30, 50, 70 }; int[] lon = { 10, 30, 50, 70 }; webBrowser1.Invo…

我需要询问网页中的每个img标签,并以其呈现的形式找到其高度和宽度。不是实际的物理图像尺寸。我需要在WinForm应用程序的C#中执行此操作。例:http://motherboard.vice.com/read/i-built-a-botnet-that-could-destroy-spotify-with-fake-listens主图像的物理尺寸为3648…

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » wpf webbrowser javascript回调 – javascript程序员分享
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们