首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏全栈程序员必看

    spidermonkey的使用及代码(SpiderMonkey1.7)[通俗易懂]

    *obj); /*** JSInit - Create a prototype for wxCustomer*/ static JSObject* JSInit(JSContext *cx, JSObject *obj, JSObject *proto=NULL); static JSBool computeReduction(JSContext *cx, JSObject *obj, uintN argc *obj) { JSCustomer *priv = (JSCustomer*)JS_GetPrivate(cx, obj); delete priv; priv = NULL; } JSObject *JSCustomer::JSInit(JSContext *cx, JSObject *obj, JSObject *proto) { JSObject *newProtoObj = JS_InitClass *obj, jsval id, jsval *vp); static JSBool SetPeopleProperty(JSContext *cx, JSObject *obj, jsval id,

    1.1K30编辑于 2022-11-03
  • 来自专栏Kirin博客

    javascript中json对象json数组json字符串互转及取值

    类型字符串之间互转及取值,记录一下: 1.json类型的字符串转换为json对象及取值 1  var jsonString = '{"bar":"property","baz":3}'; 2 var jsObject = JSON.parse(jsonString); //转换为json对象 3 alert(jsObject.bar); //取json中的值 2.json对象转为json类型的字符串 var jsonString = '{"bar":"property","baz":3}'; var jsObject = JSON.parse(jsonString); //转换为json对象 alert(jsObject.bar); //取json中的值 var st = JSON.stringify(jsObject); //转换为json类型的字符串 3.json数组类型的字符串转换为

    7K51发布于 2020-10-30
  • 来自专栏web全栈潮流

    JavaFX WebView概述,很强大,内置了类似Electron的功能

    如果结果是JavaScript对象,则将其包装为JSObject类的实例。 JSObject类是一个代理,可提供对其基础JavaScript对象的方法和属性的访问。 DOM节点映射到既扩展JSObject又实现适当的DOM接口的对象。 要获取Node的JSObject对象,只需执行强制转换: JSObject jdoc =(JSObject)webEngine.getDocument(); 8.将Java对象映射到JavaScript 值: JSObject方法setMember和call的参数将Java对象传递给JavaScript环境。 JSObject对象将转换为原始包装的JavaScript对象。否则,将创建一个JavaRuntimeObject。

    13.9K41发布于 2020-05-08
  • 来自专栏全栈程序员必看

    Android hybrid_android混合开发

    webview组件 wv_test = findViewById(R.id.wv_test); // 通过addJavascriptInterface方法 将Android里面提供的方法对象集合JSObject 暴露给页面,同时也将页面的提供的js方法注册给Android wv_test.addJavascriptInterface(new JSObject(this), JSOBJECT); // 加载网页 在java文件中创建一个供网页端调用的类,如JSObject,里面编写供网页调用的方法. 一般h5页面常要调用Android摄像头,相册,还有自定义方法。 MyJS可以看成是JSObject类在网页中的别名,下面会使用webview的addJavascriptInterface()方法将它们关联起来。 <! (this), JSOBJECT); // 加载网页,若非本地页面,则把下面的加载地址换在页面url wv_test.loadUrl("file:///android_asset/hybrid_test.html

    1.9K20编辑于 2022-11-08
  • 来自专栏无限可能的程序开发

    V8中的快慢数组(附源码、图文更易理解😃)

    在 V8 源码中清晰地表明,JSArray 继承自 JSObject,即数组是一个特殊的对象,而 JS 中所有非原始类型都是对象的实例,所以 JS 中数组可以存储多种类型的值。 ::kMaxUncheckedOldFastElementsLength <= JSObject::kMaxUncheckedFastElementsLength); ::kMaxGap) return true; *new_capacity = JSObject::NewElementsCapacity(index + 1); DCHECK_LT(index <= JSObject::kMaxUncheckedFastElementsLength && ObjectInYoungGeneration(object))) { return 前面说过,JSArray 继承自 JSObject,我们可以在 js-objects.h 中找到如下代码: path:v8/src/objects/js-objects.h 扩容公式 // path

    76330编辑于 2022-09-26
  • 来自专栏FreeBuf

    一文彻底搞懂安卓WebView白名单校验

    要求在JsObject中增加一个方法getUsername。 jsObject=new JsObject(); WebView webView = (WebView) findViewById(R.id.myWebview); webView.getSettings (inputUrl); //把webview将要加载的URL传递给JsObject if (checkDomain(inputUrl,0)) 每一次shouldOverrideUrlLoading的时候都把新的URL传给JsObject中以备在JavascriptInterface中检测。 jsObject=new JsObject(); WebView webView = (WebView) findViewById(R.id.myWebview); webView.getSettings

    5.5K40发布于 2019-05-09
  • 来自专栏向治洪

    关于webview调用js出现has no method 'toString'

    在android4.2以前,注入步骤如下: webview.getSetting().setJavaScriptEnable(true);   class JsObject {   public String  toString() { return "injectedObject"; }    }    webView.addJavascriptInterface(new JsObject(), "injectedObject ");   Android4.2及以后,注入步骤如下: webview.getSetting().setJavaScriptEnable(true);   class JsObject {   @JavascriptInterface public String toString() { return "injectedObject"; }    }    webView.addJavascriptInterface(new JsObject class JsObject

    2.4K80发布于 2018-01-29
  • 来自专栏前端精读评论

    精读《JS 数组的内部实现》

    object, uint32_t capacity, uint32_t index, uint32_t* new_capacity ) { STATIC_ASSERT(JSObject ::kMaxUncheckedOldFastElementsLength <= JSObject::kMaxUncheckedFastElementsLength); ::kMaxGap) return true; *new_capacity = JSObject::NewElementsCapacity(index + 1); DCHECK_LT(index <= JSObject::kMaxUncheckedFastElementsLength && ObjectInYoungGeneration(object))) { return 第二处 index - capacity >= JSObject::kMaxGap 时变成字典模式,其中 kMaxGap 是常量 1024,也就是新加入的 HOLEY(孔洞) 大于 1024,则转化为字典模式

    1.2K20编辑于 2022-06-10
  • 来自专栏简言之

    Ajax & Axios & Json

    JS 提供了一个对象 JSON ,该对象有如下两个方法 方法 作用 使用方法 parse(str) 将 JSON 转换为 JS 对象 var jsObject = JSON.parse(jsonStr) ; stringify(obj) 将 JS 对象转换为 JSON var jsonStr = JSON.stringify(jsObject) <script> //1. 将 JSON 字符串转为 JS 对象 let jsObject = JSON.parse(jsonStr); alert(jsObject) alert(jsObject.name) / 将 JS 对象转换为 JSON 字符串 let jsonStr2 = JSON.stringify(jsObject); alert(jsonStr2) </script> Axios发送Json ", data:jsObject //这里 axios 会将该js对象转换为 json }).then(function (resp) { alert(resp.data);

    4K30编辑于 2023-01-04
  • 来自专栏Czy‘s Blog

    深入理解Js数组

    . // - slow, backing storage is a HashTable with numbers as keys. class JSArray : public JSObject // v8/src/elements.cc // line 783 if (2 * length + JSObject::kMinAddedElementsCapacity <= capacity) { // v8/src/objects/js-objects-inl.h // line 992 static inline bool ShouldConvertToSlowElements(JSObject if (*new_capacity <= JSObject::kMaxUncheckedOldFastElementsLength || (*new_capacity <= JSObject // v8/src/objects/js-objects.cc // line 4523 static bool ShouldConvertToFastElements(JSObject object,

    1.1K10发布于 2020-08-27
  • 来自专栏加菲猫的VFP

    quickjs传参并调用JS函数,VFP黑科技

    //准备调用参数 JSValue dNum1 = JS_NewFloat64(ctx,99); JS_FreeValue(ctx,dNum1 ); JSValue jsObject = JS_GetGlobalObject(ctx); JSValue jsCalculate = JS_GetPropertyStr(ctx,jsObject ,"calculate"); //找出要调用的函数 JS_FreeValue(ctx,jsObject); JS_FreeValue(ctx, jsCalculate); //正式调用 JSValue = JS_GetGlobalObject(ctx); JSValue jsCalculate = JS_GetPropertyStr(ctx,jsObject ,"calculate"); //找出要调用的函数 JS_FreeValue(ctx,jsObject); JS_FreeValue(ctx, jsCalculate); //正式调用 JSValue

    2.1K30编辑于 2023-10-06
  • 来自专栏腾讯IVWEB团队的专栏

    [译] 弄明白JS中的delete操作符

    对这些属性进行delete操作会的到返回值false console.log(delete Math.PI); false delete与其在数列上的留洞性质(holey nature) 所有JS中的类型都继承自JSObject 每一个我们定义的对象的属性, 都是C++ JSObject的一个成员 obj = { d: 90, f: 88 } JSObject { d -> 90, f -> 88 } 数列也属于JSObject, 只是他们之间存在一些差别. 差别在于, Array的JSObject并不是由数列自己定义的, 而是通过数字排序定义的 obj = [90, 88]; JSObject { 0 -> 90 1 -> 88 } 这也是为什么我们在引用数组时的方式

    1.5K10发布于 2020-06-28
  • 来自专栏hbbliyong

    WebBrowser(IE) 与 JS 相互调用

    有了这个方法,调用C#方法就很简单,只需要在C#中声明一个C#对象,然后再设置 this.webBrowser1.ObjectForScripting = new JSObject();  就OK了。 记得要在JSObject 类上面声明 [System.Runtime.InteropServices.ComVisible(true)] 才能使对象可见。 设置完了之后,就可以在JS 中使用Window.external.function();调用JSObject()的function() 方法了。 HTML>   [csharp] view plain copy [System.Runtime.InteropServices.ComVisible(true)]   public class JSObject

    5.8K71发布于 2018-03-29
  • 来自专栏Play & Scala 技术分享

    Play For Scala 开发指南 - 第10章 MongoDB 开发

    [User].find[User](obj("_id" -> "0")).first // Future[Option[User]] mongo.collection[User].findById[JsObject ]("0") // Future[Option[JsObject]] mongo.collection[User].find[JsObject](obj("_id" -> "0")).first //  Future[Option[JsObject]] mongo.collection("common-user").findById[User]("0") // Future[Option[User]] ]("0") // Future[Option[JsObject]] mongo.collection("common-user").find[JsObject](obj("_id" -> "0")). first // Future[Option[JsObject]] 删除操作 mongo.deleteById[User]("0") mongo.deleteOne[User](obj("_id" ->

    2.1K10发布于 2019-03-12
  • 来自专栏小鑫同学编程历险记

    尝试Capacitor(Vue+Android)混合开发

    定义插件: ```javascript package cn.it200.v3demo; import com.getcapacitor.JSObject; import com.getcapacitor.Plugin () public void echo(PluginCall call) { String value = call.getString("value"); JSObject ret = new JSObject(); ret.put("value", value); call.resolve(ret); } } 注册插件MainActivity

    3K30编辑于 2022-12-26
  • 来自专栏Play & Scala 技术分享

    Scala 谜题 - 有趣的类型转换

    invariant 的,利用 asInstanceOf 方法可以让它变成 covariant,示例代码如下: object Test extends App { val jsObjClass: Class[JsObject ] = classOf[JsObject] val jsValueClass: Class[JsValue] = jsObjClass.asInstanceOf[Class[JsValue]] } 由于在运行时 JsObject 可以被成功地转换为 JsValue,所以上述代码可以正常工作。

    1K70发布于 2018-05-17
  • 来自专栏Android开发经验

    webview调用android代码

    在js中通过"TestObject"对象调用客户端方法 TestObject.showToastContent("haha") 备上一段官网关于这个内容的代码: class JsObject { JavascriptInterface public String toString() { return "injectedObject"; } } webView.addJavascriptInterface(new JsObject

    1.2K60发布于 2018-06-28
  • 来自专栏Seebug漏洞平台

    傲游浏览器漏洞系列(上)- 任意文件写入,UXSS

    com.mx.jsobject.AppcenterLocalImpl Methods: jsCall com.mx.browser.navigation.reader.ca Methods: getContent com.mx.jsobject.JsObjAppcenter Methods: jsCall com.mx.jsobject.JsObjAutoFill Methods: catchform, enableAutoFill Methods: getPostUrl, signin com.mx.jsobject.JsObjMxBrowser Methods: addLauncherShortcut, getAndroidId , * shareToAll, shareToSinaWeibo, shareToSinaWeibo, shareToWXTimeLine, shareToWeChatTimeLine com.mx.jsobject.JsObjNextPage Methods: shareTo com.mx.jsobject.JsTouchIconExtractor Methods: onReceivedTouchIcons com.mx.browser.readmode.ReadModeActivity

    1.7K40发布于 2018-03-29
  • 来自专栏tea9的博客

    android Broadcast Receiver漏洞挖掘

    ); i.setAction("com.baidu.android.oushservice.action.MESSAGE"); Bundle b = new Bundle(); JSONObject jsobject = new JSONObject(); JSONObject custom_content_js = new JSONObject(); jsobject.put("title","百度云盘【漏洞你中奖了 ; jsobject.put("descrption",""); //jsobject.put("url","http://bcscdn.baidu.com/netdisk/BaiduYun_5.1.0

    1.7K20编辑于 2022-07-16
  • 来自专栏拂晓风起

    cocos2d-js 3.0 RC0 手动绑定 C++调用js,js调用C++ jsbinding

    jsb_callback(JSContext *cx, uint32_t argc, JS::Value *vp); void register_jsb_kenko_all(JSContext* cx, JSObject JS_SET_RVAL(cx, vp, ret); return true; } void register_jsb_kenko_all(JSContext *cx, JSObject _callFromScript; }; bool executeFunctionWithObjectData(void* nativeObj, const char *name, JSObject bool evalString(const char *string, jsval *outVal, const char *filename = NULL, JSContext* cx = NULL, JSObject JS_SET_RVAL(cx, vp, ret); return true; } void register_jsb_kenko_all(JSContext *cx, JSObject

    2.4K30发布于 2018-07-03
领券