📄 mgjs_location.cpp
字号:
#include "mgjs_main.h"static JSBool myjs_GetLocationProperty (JSContext *cx, JSObject *obj, jsval id, jsval *vp);static JSBool myjs_SetLocationProperty (JSContext *cx, JSObject *obj, jsval id, jsval *vp);static JSBool myjsLoca_reload (JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);static JSBool myjsLoca_replace (JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);enum myjs_eLocationProps { MYJSLOC_HASH, MYJSLOC_HOST, MYJSLOC_HOSTNAME, MYJSLOC_HREF, MYJSLOC_PATHNAME, MYJSLOC_PORT, MYJSLOC_PROTOCOL, MYJSLOC_SEARCH};static JSBool myjs_GetLocationProperty (JSContext *cx, JSObject *obj, jsval id, jsval *vp){ MGHTMLView *view = mgJSGetView(cx); KURL url = view->m_windowurl; QString str=url.ref(); if (JSVAL_IS_INT(id)) { switch (JSVAL_TO_INT(id)) { case MYJSLOC_HASH: *vp=STRING_TO_JSVAL (JS_NewStringCopyZ (cx, str)); break; case MYJSLOC_HOST: str = url.host(); if (url.port()) str += ":" + QString::number(url.port()); *vp=STRING_TO_JSVAL (JS_NewStringCopyZ (cx, str)); break; case MYJSLOC_HOSTNAME: str = url.host(); *vp=STRING_TO_JSVAL (JS_NewStringCopyZ (cx, str)); break; case MYJSLOC_HREF: str = url.prettyURL(); *vp=STRING_TO_JSVAL (JS_NewStringCopyZ (cx, str)); break; case MYJSLOC_PATHNAME: str = url.path(); *vp=STRING_TO_JSVAL (JS_NewStringCopyZ (cx, str)); break; case MYJSLOC_PORT: str = url.port() ? QString::number(url.port()) : QString::fromLatin1(""); *vp=STRING_TO_JSVAL (JS_NewStringCopyZ (cx, str)); break; case MYJSLOC_PROTOCOL: str = url.protocol(); *vp=STRING_TO_JSVAL (JS_NewStringCopyZ (cx, str)); break; case MYJSLOC_SEARCH: str = url.query(); *vp=STRING_TO_JSVAL (JS_NewStringCopyZ (cx, str)); break; } } return JS_TRUE;}static JSBool myjs_SetLocationProperty (JSContext *cx, JSObject *obj, jsval id, jsval *vp){#if 0 JSString* text; HWND hWnd = mgJSGethWnd(cx);#endif QString str; if (JSVAL_IS_INT(id)) { switch (JSVAL_TO_INT(id)) { case MYJSLOC_HREF: // str=JSVAL_TO_STRING(*vp); //TODO: //part->scheduleRedirection(0, str); break; } } return JS_TRUE;}static JSBool myjsLoca_reload (JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval){ return JS_TRUE;}static JSBool myjsLoca_replace (JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval){ return JS_TRUE;}static JSPropertySpec myjs_LocationProps[] = { {"hash", MYJSLOC_HASH, JSPROP_ENUMERATE}, {"host", MYJSLOC_HOST, JSPROP_ENUMERATE}, {"hostname",MYJSLOC_HOSTNAME,JSPROP_ENUMERATE,}, {"href", MYJSLOC_HREF, JSPROP_ENUMERATE}, {"pathname", MYJSLOC_PATHNAME, JSPROP_ENUMERATE}, {"port", MYJSLOC_PORT, JSPROP_ENUMERATE}, {"protocol", MYJSLOC_PROTOCOL, JSPROP_ENUMERATE}, {"search", MYJSLOC_SEARCH, JSPROP_ENUMERATE}, {0} };static JSFunctionSpec myjs_LocationMethods[] = {// name native nargs {"reload", myjsLoca_reload, 1}, {"replace", myjsLoca_replace, 1}, {0}};static JSClass myjs_LocationClass = { "Location", 0, JS_PropertyStub, JS_PropertyStub, myjs_GetLocationProperty, myjs_SetLocationProperty, JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub };JSObject* InitLocationClass(JSContext *cx,JSObject *globalObj,JSObject *proto){ JSObject *Obj; Obj = JS_DefineObject (cx,globalObj, "location", &myjs_LocationClass,proto,JSPROP_ENUMERATE); JS_DefineProperties (cx,Obj,myjs_LocationProps); JS_DefineFunctions (cx,Obj,myjs_LocationMethods); return Obj;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -