分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

ChakraCore ,Net托管编程

发布时间:2023-09-06 01:11责任编辑:林大明关键词:暂无标签

设置全局变量

 ???????????setTitleDelegate = SetTitle; ???????????alertDelegate = ShowMessage; ???????????context = runtime.CreateContext(); ???????????JavaScriptContext.Current = context; ???????????JavaScriptValue globalObject = JavaScriptValue.GlobalObject; ???????????windowId = JavaScriptPropertyId.FromString("window"); ???????????JavaScriptValue window = JavaScriptValue.CreateObject(); ???????????var type = this.GetType(); ???????????var ps = type.GetProperties(); ???????????foreach (var p in ps) ???????????{ ???????????????if (p.GetMethod != null && p.GetMethod.IsPublic) ???????????????{ ???????????????????var v = p.GetValue(this) ?? ""; ???????????????????window.SetProperty(JavaScriptPropertyId.FromString(p.Name.ToLower()), JavaScriptValue.FromString(v.ToString()), true); ???????????????} ???????????} ???????????globalObject.SetProperty(windowId, window, true); ???????????globalObject.SetProperty(JavaScriptPropertyId.FromString("set_Title"), JavaScriptValue.CreateFunction(setTitleDelegate, IntPtr.Zero), true); ???????????globalObject.SetProperty(JavaScriptPropertyId.FromString("alert"), JavaScriptValue.CreateFunction(alertDelegate, IntPtr.Zero), true);

  回调函数

private JavaScriptValue SetTitle(JavaScriptValue callee, bool isConstructCall, JavaScriptValue[] arguments, ushort argumentCount, IntPtr callbackData) ???????{ ???????????for (uint index = 1; index < argumentCount; index++) ???????????{ ???????????????Title = (arguments[index].ConvertToString().ToString()); ???????????} ???????????return JavaScriptValue.Invalid; ???????}

  调用代码

 ???????????string script = scripts.Text; ???????????JavaScriptValue window = JavaScriptValue.GlobalObject.GetProperty(windowId); ???????????var jv = JavaScriptContext.RunScript(script); ???????????var type = this.GetType(); ???????????var ps = type.GetProperties(); ???????????foreach (var p in ps) ???????????{ ???????????????if (p.SetMethod != null && p.SetMethod.IsPublic) ???????????????{ ???????????????????var id = JavaScriptPropertyId.FromString(p.Name.ToLower()); ???????????????????if (id != JavaScriptPropertyId.Invalid) ???????????????????{ ???????????????????????var v = window.GetProperty(id); ???????????????????????if (p.PropertyType.IsAssignableFrom(typeof(string))) ???????????????????????{ ???????????????????????????p.SetValue(this, v.ToString()); ???????????????????????} ???????????????????} ???????????????} ???????????}

  

ChakraCore ,Net托管编程

原文地址:http://www.cnblogs.com/icoolno1/p/7534771.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved