⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mgjs_navigator.cpp

📁 monqueror一个很具有参考价值的源玛
💻 CPP
字号:
#include "mgjs_main.h"static JSBool GetNavigatorProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp);static JSBool SetNavigatorProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp);static JSBool NavigatorJavaEnabled (JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);static JSBool NavigatorTaintEnabled (JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);static JSBool NavigatorPreference (JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);enum Navigator_slots {  NAVIGATOR_APPCODENAME ,  NAVIGATOR_APPNAME ,  NAVIGATOR_APPVERSION ,  NAVIGATOR_LANGUAGE ,  NAVIGATOR_MIMETYPES ,  NAVIGATOR_PLATFORM ,  NAVIGATOR_OSCPU ,  NAVIGATOR_VENDOR ,  NAVIGATOR_VENDORSUB ,  NAVIGATOR_PRODUCT ,  NAVIGATOR_PRODUCTSUB ,  NAVIGATOR_PLUGINS ,  NAVIGATOR_SECURITYPOLICY ,  NAVIGATOR_USERAGENT ,  NAVIGATOR_COOKIEENABLED };static JSBool GetNavigatorProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp){  if (JSVAL_IS_INT(id)) {        switch (JSVAL_TO_INT(id)) {		case NAVIGATOR_APPCODENAME :			break;		case NAVIGATOR_APPNAME :			break;		case NAVIGATOR_APPVERSION :			break;		case NAVIGATOR_LANGUAGE :			break;		case NAVIGATOR_MIMETYPES :			break;		case NAVIGATOR_PLATFORM :			break;		case NAVIGATOR_OSCPU :			break;		case NAVIGATOR_VENDOR :			break;		case NAVIGATOR_VENDORSUB :			break;		case NAVIGATOR_PRODUCT :			break;		case NAVIGATOR_PRODUCTSUB :			break;		case NAVIGATOR_PLUGINS :			break;		case NAVIGATOR_SECURITYPOLICY :			break;		case NAVIGATOR_USERAGENT :			break;		case NAVIGATOR_COOKIEENABLED:			break;		}	}		return JS_TRUE;}static JSBool SetNavigatorProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp){	//NB:all properties are readonly#if 0		if (JSVAL_IS_INT(id)) {		switch (JSVAL_TO_INT(id)) {#if 0		//NB:readonly property						case NAVIGATOR_APPCODENAME :			break;		case NAVIGATOR_APPNAME :			break;		case NAVIGATOR_APPVERSION :			break;		case NAVIGATOR_LANGUAGE :			break;		case NAVIGATOR_MIMETYPES :			break;		case NAVIGATOR_PLATFORM :			break;		case NAVIGATOR_OSCPU :			break;		case NAVIGATOR_VENDOR :			break;		case NAVIGATOR_VENDORSUB :			break;		case NAVIGATOR_PRODUCT :			break;		case NAVIGATOR_PRODUCTSUB :			break;		case NAVIGATOR_PLUGINS :			break;		case NAVIGATOR_SECURITYPOLICY :			break;		case NAVIGATOR_USERAGENT :			break;		case NAVIGATOR_COOKIEENABLED:			break;#endif		}	}#endif		return JS_TRUE;}		static JSBool NavigatorJavaEnabled (JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval){	//TODO:	return JS_TRUE;}static JSBool NavigatorTaintEnabled (JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval){	//TODO:	return JS_TRUE;}static JSBool NavigatorPreference (JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval){	//TODO:	return JS_TRUE;}static JSPropertySpec NavigatorProperties[] ={  {"appCodeName",    NAVIGATOR_APPCODENAME,    JSPROP_ENUMERATE | JSPROP_READONLY},  {"appName",    NAVIGATOR_APPNAME,    JSPROP_ENUMERATE | JSPROP_READONLY},  {"appVersion",    NAVIGATOR_APPVERSION,    JSPROP_ENUMERATE | JSPROP_READONLY},  {"language",    NAVIGATOR_LANGUAGE,    JSPROP_ENUMERATE | JSPROP_READONLY},  {"mimeTypes",    NAVIGATOR_MIMETYPES,    JSPROP_ENUMERATE | JSPROP_READONLY},  {"platform",    NAVIGATOR_PLATFORM,    JSPROP_ENUMERATE | JSPROP_READONLY},  {"oscpu",    NAVIGATOR_OSCPU,    JSPROP_ENUMERATE | JSPROP_READONLY},  {"vendor",    NAVIGATOR_VENDOR,    JSPROP_ENUMERATE | JSPROP_READONLY},  {"vendorSub",    NAVIGATOR_VENDORSUB,    JSPROP_ENUMERATE | JSPROP_READONLY},  {"product",    NAVIGATOR_PRODUCT,    JSPROP_ENUMERATE | JSPROP_READONLY},  {"productSub",    NAVIGATOR_PRODUCTSUB,    JSPROP_ENUMERATE | JSPROP_READONLY},  {"plugins",    NAVIGATOR_PLUGINS,    JSPROP_ENUMERATE | JSPROP_READONLY},  {"securityPolicy",    NAVIGATOR_SECURITYPOLICY,    JSPROP_ENUMERATE | JSPROP_READONLY},  {"userAgent",    NAVIGATOR_USERAGENT,    JSPROP_ENUMERATE | JSPROP_READONLY},  {"cookieEnabled",    NAVIGATOR_COOKIEENABLED,    JSPROP_ENUMERATE | JSPROP_READONLY},  {0}};JSClass NavigatorClass = {  "Navigator",   JSCLASS_HAS_PRIVATE ,  JS_PropertyStub,  JS_PropertyStub,  GetNavigatorProperty,  SetNavigatorProperty,  JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub };//// Navigator class methods//static JSFunctionSpec NavigatorMethods[] = {	{"javaEnabled",          NavigatorJavaEnabled,     0},	{"taintEnabled",          NavigatorTaintEnabled,     0},	{"preference",          NavigatorPreference,     0},	{0}};JSObject* InitNavigatorClass(JSContext *cx,JSObject *globalObj,JSObject *proto){	JSObject *Obj;	Obj = JS_DefineObject (cx,globalObj, "navigator", &NavigatorClass,proto,JSPROP_ENUMERATE);    JS_DefineProperties (cx,Obj,NavigatorProperties);    JS_DefineFunctions (cx,Obj,NavigatorMethods);	return Obj;}		

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -