全部 热血 格斗 武侠 魔幻 魔法 冒险 爱情 搞笑 校园 科幻 后宫 励志 职场 美食 社会 黑道 战争 历史 悬疑 竞技 体育 恐怖 推理 生活 伪娘 治愈 神鬼 四格 百合 耽美 舞蹈 侦探 宅男 音乐 萌系 古风 恋爱 都市 性转 穿越 游戏 其他 爱妻 日常 腹黑 古装 仙侠 生化 修仙 情感 改编 纯爱 唯美 蔷薇 明星 猎奇 青春 幻想 惊奇 彩虹 奇闻 权谋 宅斗 限制级 装逼 浪漫 偶像 大女主 复仇 虐心 恶搞 灵异 惊险 宠爱 逆袭 妖怪 暧昧 同人 架空 真人 动作 橘味 宫斗 脑洞 漫改 战斗 丧尸 美少女 怪物 系统 智斗 机甲 高甜 僵尸 致郁 电竞 神魔 异能 末日 乙女 豪快 奇幻 绅士 正能量 宫廷 亲情 养成 剧情 韩漫 轻小说 暗黑 长条 玄幻 霸总 欧皇 生存 萌宠 异世界 其它 C99 节操 AA 影视化 欧风 女神 爽感 转生 成长 异形 血族 团宠 反套路 双男主 无敌流 心理 颜艺 性转换
全部 内地 日本 港台 欧美 韩国 其他
全部 少年 少女 青年 BL GL
全部 连载中 完结
最近更新 人气推荐   筛选

MIP.util.platform.start() if(window.location.origin != 'https://m.happymh.com'){ MIP.setData({sys:{isHost:false}}); } MIP.setData({"sys":{"linkType":"html"}}) var storage = MIP.util.customStorage(0); var user = storage.get("_u"); var uBookcase = storage.get("_bc"); var uHistory = storage.get("_ht"); var bc_time = storage.get("_bc_time"); if(user !== null){ user = JSON.parse(user) uBookcase = JSON.parse(uBookcase) uHistory = JSON.parse(uHistory) MIP.setData({"user":{"detail":user,"uHistory":uHistory ? uHistory : [],"uBookcase": uBookcase ? uBookcase : [],"bc_time":bc_time}}); } MIP.watch('user.changeTime', function (newVal, oldVal) { if(newVal !== 0){ var user = MIP.getData("user"); var detail = user.detail; var bookcase = user.uBookcase; var history = user.uHistory; storage.set("_u",JSON.stringify(detail)); storage.set("_bc",JSON.stringify(bookcase)); storage.set("_ht",JSON.stringify(history)); storage.set("_bc_time",user.bc_time); } }) MIP.watch('user.action', function (newVal, oldVal) { if(newVal === 'exit'){ localStorage.clear(); var expireOld = new Date((new Date()).getTime() - 24 * 3600000 * 365); var host = location.host; var mainHost = host.replace('m.', '.'); document.cookie = "sf_token=1; expires=Thu, 01 Jan 1970 00:00:00 GMT; Path=/ ; domain="+mainHost; document.cookie = "sf_token=1; expires=Thu, 01 Jan 1970 00:00:00 GMT; Path=/ ; domain="+host; document.cookie = "sf_token=1; expires=Thu, 01 Jan 1970 00:00:00 GMT; Path=/"; } }) MIP.watch('sys.toastMsg.visible', function (newVal, oldVal) { var toastConfig = MIP.getData("sys.toastMsg"); if(newVal === true){ setTimeout(function(){ MIP.setData({sys:{toastMsg:{visible:false}}}) },toastConfig.timeout) } })