├── README.md ├── about.html ├── browser.html ├── error.html ├── feedback.html ├── history.html ├── index.html ├── main.js ├── new.html ├── package-lock.json ├── package.json ├── public ├── css │ ├── CampusInfo.css │ ├── browser.css │ └── uform.css ├── font │ ├── fontello.eot │ ├── fontello.svg │ ├── fontello.ttf │ ├── fontello.woff │ ├── fontello.woff2 │ └── simsun.ttf ├── img │ ├── Code │ │ ├── Array数据类型.jpg │ │ ├── 字符串处理函数.jpg │ │ └── 数字处理函数.jpg │ ├── NetWorkData │ │ ├── VMware-esxi安装.jpg │ │ ├── VMware-esxi配置.jpg │ │ └── 制作磁盘阵列.jpg │ ├── ProductData │ │ ├── AI制作绘制icon.jpg │ │ ├── Axure原型图策划.jpg │ │ └── UI设计图绘制.jpg │ ├── VideoTeach │ │ ├── VideoTeach1.png │ │ ├── VideoTeach2.png │ │ └── VideoTeach3.png │ ├── advert │ │ ├── advert1.jpg │ │ ├── advert2.jpg │ │ ├── advert3.jpg │ │ └── advert4.jpg │ ├── head.png │ ├── loading.png │ └── tray │ │ ├── app.icns │ │ ├── app.ico │ │ ├── logo.png │ │ └── logo1.png └── js │ ├── CampusInfo-data.js │ ├── CampusInfo.js │ ├── browser.js │ ├── preload.js │ └── uform.js └── screen └── browers.png /README.md: -------------------------------------------------------------------------------- 1 | "# UseStudio.Browers" 2 | 3 | #### 应用页面 4 | ![桌面页面](screen/browers.png) 5 | 6 | #### Build Setup 7 | 8 | ``` bash 9 | # install dependencies 10 | npm install 11 | # serve with hot reload at localhost:9080 12 | npm run dev 13 | # build electron application for production 14 | npm run build:win 15 | npm run build:mac 16 | npm run build:linux 17 | ``` 18 | 19 | --- -------------------------------------------------------------------------------- /about.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 关于我们 6 | 7 | 8 | 9 |
10 |
11 | 12 |
13 |
14 |
15 | 16 |

有思浏览器

17 |
18 |
19 |

20 |

开发人员:16互联网 张源、15互联网 代英杰、ZJINH

21 |

浏览器介绍:http://client.1473.cn

22 |

版权所有2018 有思俱乐部. 保留所有权利。

23 |
24 | 25 | 26 |
27 |
28 |
29 | 30 | -------------------------------------------------------------------------------- /browser.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 有思浏览器 7 | 8 | 9 | 10 | 11 | 12 |
13 |
14 | 17 |
18 | 19 | 20 | 21 |
22 |
23 |
24 | 25 | 26 | 27 |
28 | 29 | 30 |
31 | 32 | 49 | 50 |
51 |
52 | 55 |
56 |
57 | 60 | 61 | 62 | 67 | 68 | 74 | 75 | 86 |
87 | 88 | 0/0 89 | 90 | 91 | 92 |
93 |

94 | 95 | 96 | 97 | 98 | -------------------------------------------------------------------------------- /error.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 36 | 37 |
38 |
39 |
40 |

无法访问此网站

41 | 42 |
43 |
44 |
45 |
46 | 47 |
48 |
49 | 50 | 68 | -------------------------------------------------------------------------------- /feedback.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 有思浏览器反馈 6 | 7 | 8 | 9 |
10 |
11 | 12 |
13 |
14 |
15 | 16 |

问题反馈

17 |
18 |
19 | 20 | 21 | 22 | 23 |
24 |
25 |
26 | 27 | 62 | 63 | -------------------------------------------------------------------------------- /history.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 历史记录 6 | 7 | 8 | 9 |
10 |
11 | 12 |
13 |
14 |
15 |

历史记录

16 |
17 |
18 | 19 |
20 |
21 |
22 |
23 |
24 |
25 |
    26 |
  • 显示历史记录
  • 27 |
  • 28 | 清除历史记录 29 |
    确定
    30 |
    取消
    31 |
  • 32 |
33 |
34 |
35 |
36 |
37 |
38 |
已选择1
39 |
40 |
取消
41 |
删除
42 |
43 |
44 |
45 |
46 | 47 | 219 | 220 | 221 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 校园资讯 6 | 7 | 8 | 9 | 10 |
11 |
12 | 13 |

有思俱乐部

14 |
校内版
15 |

深圳市 16°C 晴

16 |
17 |
18 | 19 | 20 | 21 |
22 | 23 |
24 | 26 |
27 |
28 | 29 | 30 |
31 |
32 |
33 |
34 | 35 | 36 | 37 | 38 | 39 | 53 | -------------------------------------------------------------------------------- /main.js: -------------------------------------------------------------------------------- 1 | const electron = require('electron'); 2 | const ipc = electron.ipcMain;//用于接收命令的ipc模块 3 | const app = electron.app; 4 | const BrowserWindow = electron.BrowserWindow;//引入一个BrowserWindow 5 | const path = require('path'); 6 | const url = require('url');//引入url处理模块 7 | const autoUpdater = require('electron-updater').autoUpdater; 8 | const {ipcMain,Tray} = require('electron'); 9 | const dialog = require('electron').dialog; 10 | const Menu = electron.Menu;//引入菜单慕课 11 | const debug = (process.argv.indexOf('--debug')>0); 12 | let appTray = null;//托盘变量 13 | let trayIcon = path.join(__dirname, 'public//img/tray/'); 14 | let message={ 15 | appName:'有思浏览器', 16 | error:'检查更新出错, 请联系开发人员', 17 | checking:'正在检查更新……', 18 | updateAva:'检测到新版本,正在下载……', 19 | updateNotAva:'现在使用的就是最新版本,不用更新', 20 | downloaded: '最新版本已下载,点击安装进行更新' 21 | }; 22 | let trayMenuTemplate = [//托盘菜单 23 | { 24 | label: '退出', 25 | click: function () { 26 | CampusWindow.webContents.send('quit'); 27 | CampusWindow.close(); 28 | } 29 | } 30 | ]; 31 | let CampusWindow,mainWindow,BrowserHistory,BrowserFeedback,AboutUsW; 32 | try { 33 | let flash=app.getPath('pepperFlashSystemPlugin'); 34 | app.commandLine.appendSwitch('ppapi-flash-path',flash); 35 | }catch (e) { 36 | dialog.showErrorBox('缺少flash插件', '请前往https://www.flash.cn/下载该插件,点击确定后将打开flash下载地址'); 37 | process.argv[1]='https://www.flash.cn/'; 38 | } 39 | var version=require(__dirname+"/package.json").version; 40 | let WinReg = require('winreg'); 41 | let startOnBoot = { 42 | enableAutoStart: function (name, file, callback) { 43 | let key = getKey(); 44 | key.set(name, WinReg.REG_SZ, file, callback || noop) 45 | }, 46 | disableAutoStart: function (name, callback) { 47 | let key = getKey(); 48 | key.remove(name, callback || noop) 49 | }, 50 | getAutoStartValue: function (name, callback) { 51 | let key = getKey(); 52 | key.get(name, function (error, result) { 53 | if (result) { 54 | callback(null, result.value) 55 | } else { 56 | callback(error) 57 | } 58 | }) 59 | } 60 | }; 61 | 62 | let RUN_LOCATION = '\\Software\\Microsoft\\Windows\\CurrentVersion\\Run'; 63 | 64 | function getKey() { 65 | return new WinReg({ 66 | hive: WinReg.HKCU, // CurrentUser, 67 | key: RUN_LOCATION 68 | }) 69 | } 70 | function noop() { 71 | } 72 | function createIndexWindow(flag) { 73 | if(CampusWindow){ 74 | CampusWindow.show(); 75 | CampusWindow.restore(); 76 | CampusWindow.focus(); 77 | return 78 | } 79 | appTray = new Tray(path.join(trayIcon, 'logo1.ico')); 80 | //设置此托盘图标的悬停提示内容 81 | appTray.setToolTip('校园资讯'); 82 | const contextMenu = Menu.buildFromTemplate(trayMenuTemplate); 83 | //设置此图标的上下文菜单 84 | appTray.setContextMenu(contextMenu); 85 | appTray.on("click", function(){ 86 | CampusWindow.isVisible() ? CampusWindow.hide() : CampusWindow.show(); 87 | }); 88 | CampusWindow = new BrowserWindow({ width: 750, height: 540, maxWidth: 750, maxHeight: 540,resizable:false,frame: false,icon:path.join(trayIcon, 'logo1.png') }); 89 | CampusWindow.loadURL(url.format({ 90 | pathname: path.join(__dirname, 'index.html'), 91 | protocol: 'file:', 92 | slashes: true 93 | })); 94 | CampusWindow.on('closed', function () { 95 | CampusWindow = null; 96 | appTray.destroy(); 97 | }); 98 | if(!flag) { 99 | CampusWindow.hide(); 100 | } 101 | if(!flag) { 102 | setTimeout(function () { 103 | if (CampusWindow) { 104 | CampusWindow.show(); 105 | CampusWindow.restore(); 106 | CampusWindow.focus(); 107 | setTimeout(function () { 108 | if (CampusWindow) { 109 | CampusWindow.show(); 110 | CampusWindow.restore(); 111 | CampusWindow.focus(); 112 | } 113 | }, 1000 * 60*60); 114 | } 115 | }, 1000 * 60*5); 116 | return false; 117 | } 118 | } 119 | autoUpdater.setFeedURL('http://client.1473.cn/update');//设置检查更新的 url,并且初始化自动更新。这个 url 一旦设置就无法更改。 120 | function createWindow(request_url) { 121 | mainWindow = new BrowserWindow({//游览器窗口 122 | width: 1920, 123 | height: 1080, 124 | backgroundColor:'#fff', 125 | webPreferences:{ 126 | 'plugins': true 127 | }, 128 | frame: false 129 | }); 130 | mainWindow.loadURL(url.format({ 131 | pathname: path.join(__dirname, 'browser.html'), 132 | protocol: 'file:', 133 | slashes: true 134 | })); 135 | if(debug) { 136 | mainWindow.webContents.openDevTools(); 137 | } 138 | mainWindow.on('closed', function () { 139 | mainWindow = null 140 | }); 141 | mainWindow.webContents.on('did-finish-load', function(){ 142 | if(request_url) { 143 | mainWindow.webContents.send('flag', '1'); 144 | mainWindow.webContents.send('url', request_url) 145 | }else { 146 | mainWindow.webContents.send('flag', '-1'); 147 | } 148 | }); 149 | mainWindow.focus(); 150 | mainWindow.on('maximize',function () { 151 | mainWindow.webContents.send('size', 1); 152 | }); 153 | mainWindow.on('unmaximize',function () { 154 | mainWindow.webContents.send('size', -1); 155 | }); 156 | } 157 | function CreateHistory() { 158 | if(BrowserHistory){ 159 | BrowserHistory.show(); 160 | return false; 161 | } 162 | BrowserHistory = new BrowserWindow({//历史记录 163 | width: 1450, 164 | height:900, 165 | resizable:false, 166 | frame: false, 167 | parent:mainWindow 168 | }); 169 | BrowserHistory.loadURL(url.format({ 170 | pathname: path.join(__dirname, 'history.html'), 171 | protocol: 'file:', 172 | slashes: true 173 | })); 174 | BrowserHistory.on('closed', function () { 175 | BrowserHistory = null 176 | }); 177 | } 178 | function createFeedBack(){ 179 | if(BrowserFeedback){ 180 | BrowserFeedback.show(); 181 | return false; 182 | } 183 | BrowserFeedback = new BrowserWindow({ 184 | width: 500, 185 | height:320, 186 | frame:false, 187 | modal :true, 188 | resizable: false, 189 | maximizable:false, 190 | minimizable:false, 191 | parent:mainWindow 192 | }); 193 | BrowserFeedback.loadURL(url.format({ 194 | pathname: path.join(__dirname, 'feedback.html'), 195 | protocol: 'file:', 196 | slashes: true 197 | })); 198 | BrowserFeedback.on('closed', function () { 199 | BrowserFeedback = null 200 | }); 201 | } 202 | function CreateAboutUs() { 203 | AboutUsW = new BrowserWindow({ 204 | width: 500, 205 | height:280, 206 | frame:false, 207 | modal :true, 208 | resizable: false, 209 | maximizable:false, 210 | minimizable:false, 211 | show:false, 212 | parent:mainWindow 213 | }); 214 | AboutUsW.loadURL(url.format({ 215 | pathname: path.join(__dirname, 'about.html'), 216 | protocol: 'file:', 217 | slashes: true 218 | })); 219 | AboutUsW.on('closed', function () { 220 | AboutUsW = null 221 | }); 222 | } 223 | function CheckUpdate(event) { 224 | //当开始检查更新的时候触发 225 | autoUpdater.on('checking-for-update', function() { 226 | event.sender.send('check-for-update',message.checking);//返回一条信息 227 | }); 228 | //当发现一个可用更新的时候触发,更新包下载会自动开始 229 | autoUpdater.on('update-available', function(info) { 230 | AboutUsW.show(); 231 | event.sender.send('update-down-success', info); 232 | event.sender.send('check-for-update',message.updateAva);//返回一条信息 233 | }); 234 | //当没有可用更新的时候触发 235 | autoUpdater.on('update-not-available', function(info) { 236 | event.sender.send('check-for-update',message.updateNotAva);//返回一条信息 237 | }); 238 | autoUpdater.on('error', function(error){ 239 | event.sender.send('check-for-update',message.error);//返回一条信息 240 | }); 241 | // 更新下载进度事件 242 | autoUpdater.on('download-progress', function(progressObj) { 243 | //这个事件无法使用 244 | mainWindow.webContents.send('download-progress',progressObj) 245 | }); 246 | autoUpdater.on('update-downloaded', function () { 247 | event.sender.send('check-for-update',message.downloaded);//返回一条信息 248 | //通过main进程发送事件给renderer进程,提示更新信息 249 | }); 250 | //执行自动更新检查 251 | } 252 | function BindIpc(){ 253 | ipc.on('window-min', function () { 254 | CampusWindow.minimize(); 255 | }); 256 | ipc.on('window-max', function () { 257 | if (CampusWindow.isMaximized()) { 258 | CampusWindow.restore(); 259 | } else { 260 | CampusWindow.maximize(); 261 | } 262 | }); 263 | ipc.on('window-close', function () { 264 | CampusWindow.hide(); 265 | }); 266 | /*校园资讯打开浏览器*/ 267 | ipcMain.on('open-browers',function (e,arg) { 268 | if(mainWindow){ 269 | mainWindow.webContents.send('url', arg); 270 | mainWindow.show(); 271 | mainWindow.focus(); 272 | return 273 | } 274 | createWindow(arg) 275 | }); 276 | /*浏览器ipc*/ 277 | ipc.on('newBrowersWindow',function (e,arg) { 278 | createWindow(arg); 279 | }); 280 | ipc.on('CampusInfo',function () { 281 | createIndexWindow(true); 282 | }); 283 | ipc.on('elm',function (e,arg){ 284 | mainWindow.webContents.send('elm', arg); 285 | }); 286 | /*反馈窗口ipc*/ 287 | ipc.on('BrowserFeedback-show', function () { 288 | createFeedBack(); 289 | }); 290 | ipc.on('BrowserFeedback-close', function () {//隐藏 291 | BrowserFeedback.hide(); 292 | BrowserFeedback.close(); 293 | BrowserFeedback=null; 294 | }); 295 | /*历史记录ipc*/ 296 | ipc.on('BrowserHistory-show', function () {//显示 297 | CreateHistory(); 298 | }); 299 | ipc.on('BrowserHistory-close', function () {//隐藏 300 | BrowserHistory.hide(); 301 | BrowserHistory.close(); 302 | BrowserHistory = null 303 | }); 304 | /*关于我们IPC*/ 305 | ipc.on('AboutUsW-show', function () {//显示 306 | AboutUsW.show(); 307 | }); 308 | ipc.on('AboutUsW-close', function () {//隐藏 309 | AboutUsW.hide(); 310 | }); 311 | /*关于我们获取版本信息*/ 312 | ipcMain.on('get-version',function (event,arg) { 313 | event.sender.send('version',version); 314 | }); 315 | /*接收打开历史记录*/ 316 | ipc.on('open-history', function (event,arg) {//隐藏 317 | mainWindow.webContents.send('open-history', arg) 318 | }); 319 | /*检查更新*/ 320 | ipc.on('check-for-update', function(event, arg) { 321 | CheckUpdate(event); 322 | autoUpdater.checkForUpdates(); 323 | }); 324 | ipc.on('update', function(event, arg) { 325 | autoUpdater.quitAndInstall(); 326 | }); 327 | ipc.on('openlove', function (event, arg) { 328 | let request_url = arg 329 | mainWindow = new BrowserWindow({//游览器窗口 330 | width: 1920, 331 | height: 1080, 332 | backgroundColor:'#fff', 333 | webPreferences:{ 334 | 'plugins': true 335 | }, 336 | frame: false 337 | }); 338 | mainWindow.loadURL(url.format({ 339 | pathname: path.join(__dirname, 'browser.html'), 340 | protocol: 'file:', 341 | slashes: true 342 | })); 343 | if(debug) { 344 | mainWindow.webContents.openDevTools(); 345 | } 346 | mainWindow.on('closed', function () { 347 | mainWindow = null 348 | }); 349 | mainWindow.webContents.on('did-finish-load', function(){ 350 | if(request_url) { 351 | mainWindow.webContents.send('flag', '1'); 352 | mainWindow.webContents.send('url', request_url) 353 | }else { 354 | mainWindow.webContents.send('flag', '-1'); 355 | } 356 | }); 357 | mainWindow.focus(); 358 | mainWindow.on('maximize',function () { 359 | mainWindow.webContents.send('size', 1); 360 | }); 361 | mainWindow.on('unmaximize',function () { 362 | mainWindow.webContents.send('size', -1); 363 | }); 364 | }) 365 | } 366 | 367 | const gotTheLock = app.makeSingleInstance((commandLine, workingDirectory) => { 368 | createWindow(); 369 | }); 370 | if (gotTheLock) { 371 | 372 | app.quit(); 373 | return; 374 | } 375 | app.on('ready', () => { 376 | startOnBoot.enableAutoStart('有思浏览器', process.execPath+" start"); 377 | BindIpc();//ipc通信绑定 378 | createWindow(); 379 | CreateAboutUs(); 380 | if(process.argv[1]==='start'){ 381 | mainWindow.hide(); 382 | createIndexWindow(false); 383 | }else{ 384 | if(process.argv[1]&&process.argv[1].indexOf('--')<0) { 385 | return createWindow(process.argv[1]); 386 | } 387 | mainWindow.show(); 388 | } 389 | }); 390 | app.on('window-all-closed', function () { 391 | if (process.platform !== 'darwin') { 392 | app.quit() 393 | } 394 | }); 395 | app.on('activate', function () { 396 | if (CampusWindow === null&&process.argv[1]==='browers') { 397 | createIndexWindow(true) 398 | } 399 | }); -------------------------------------------------------------------------------- /new.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 新建标签页 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Usestudio-Browser", 3 | "main": "main.js", 4 | "private": true, 5 | "productName": "Usestudio-Browser", 6 | "version": "3.0.2", 7 | "author": "ZJINH", 8 | "description": "有思浏览器", 9 | "email": "211775259@qq.com", 10 | "dependencies": { 11 | "electron-updater": "^4.0.0", 12 | "fs": "0.0.1-security", 13 | "regedit": "^3.0.0", 14 | "winreg": "^1.2.4" 15 | }, 16 | "devDependencies": { 17 | "electron": "^2.0.12" 18 | }, 19 | "build": { 20 | "publish": [ 21 | { 22 | "provider": "generic", 23 | "url": "http://client.1473.cn/update" 24 | } 25 | ], 26 | "appId": "Usestudio.CampusInfo", 27 | "directories": { 28 | "output": "build" 29 | }, 30 | "win": { 31 | "icon": "public\\img\\tray\\app.ico", 32 | "artifactName": "${productName}_setup.${ext}", 33 | "target": [ 34 | "nsis" 35 | ] 36 | }, 37 | "asar": true, 38 | "nsis": { 39 | "oneClick": false, 40 | "menuCategory": "有思俱乐部", 41 | "shortcutName": "互联办公", 42 | "allowToChangeInstallationDirectory": true, 43 | "perMachine": true, 44 | "runAfterFinish": true 45 | }, 46 | "mac": { 47 | "icon": "public\\img\\tray\\app.icns", 48 | "category": "browers", 49 | "target": [ 50 | "dmg" 51 | ] 52 | }, 53 | "dmg": { 54 | "window": { 55 | "x": 100, 56 | "y": 100, 57 | "width": 500, 58 | "height": 300 59 | } 60 | } 61 | }, 62 | "linux": { 63 | "icon": "public\\img\\tray\\app.ico", 64 | "target": [ 65 | "AppImage", 66 | "tar.gz" 67 | ] 68 | }, 69 | "scripts": { 70 | "dev": "electron .", 71 | "build:win": "electron-builder --win --ia32", 72 | "build:mac": "electron-builder --mac", 73 | "build:linux": "electron-builder --platform=linux" 74 | }, 75 | "license": "ZJINH" 76 | } 77 | -------------------------------------------------------------------------------- /public/css/CampusInfo.css: -------------------------------------------------------------------------------- 1 | *{ 2 | margin: 0; 3 | padding: 0; 4 | font-family:Microsoft YaHei,fontello; 5 | -webkit-font-smoothing: antialiased; 6 | -moz-osx-font-smoothing: grayscale; 7 | list-style: none; 8 | box-sizing: border-box; 9 | -moz-user-select: none; 10 | -webkit-user-select: none; 11 | -ms-user-select: none; 12 | -khtml-user-select: none; 13 | user-select: none; 14 | } 15 | button:focus,button{ 16 | outline: none; 17 | cursor: pointer; 18 | } 19 | @font-face { 20 | font-family: 'fontello'; 21 | src: url('../font/fontello.eot?143z8w'); 22 | src: url('../font/fontello.eot?143z8w#iefix') format('embedded-opentype'), 23 | url('../font/fontello.ttf?143z8w') format('truetype'), 24 | url('../font/fontello.woff?143z8w') format('woff'), 25 | url('../font/fontello.svg?143z8w#fontello') format('svg'); 26 | font-weight: normal; 27 | font-style: normal; 28 | } 29 | @font-face { 30 | font-family: 'simsun'; 31 | src: url('../font/simsun.ttf'); 32 | src: url('../font/simsun.ttf') format('ttf'), 33 | url('../font/simsun.ttf') format('ttf'); 34 | font-weight: normal; 35 | font-style: normal; 36 | } 37 | 38 | [class^="icon-"], [class*=" icon-"]{ 39 | display: inline-block; 40 | font: normal normal normal 14px/1 fontello,Microsoft YaHei; 41 | font-size: inherit; 42 | text-rendering: auto; 43 | -webkit-font-smoothing: antialiased; 44 | -moz-osx-font-smoothing: grayscale; 45 | } 46 | /*校园资讯头部样式*/ 47 | .CampusInfoHead{ 48 | width: 100%; 49 | height: 55px; 50 | background: #f3f6fc; 51 | } 52 | .CampusInfoHeadImg{ 53 | float: right; 54 | margin-right: 90px; 55 | } 56 | .CampusInfoHeadTitle{ 57 | float: left; 58 | height: calc(100% - 30px); 59 | } 60 | .CampusInfoHeadTitle *{ 61 | float: left; 62 | } 63 | .CampusInfoHeadTitle img{ 64 | margin: 20px; 65 | margin-right: 0px; 66 | } 67 | .CampusInfoHeadTitle p{ 68 | font-size: 24px; 69 | color: #575757; 70 | font-style: italic; 71 | margin: 20px 7px 0px 0px; 72 | -moz-transform: matrix( 0.9341021117052,0,0,0.9341021117052,0,0); 73 | -webkit-transform: matrix( 0.9341021117052,0,0,0.9341021117052,0,0); 74 | -ms-transform: matrix( 0.9341021117052,0,0,0.9341021117052,0,0); 75 | } 76 | .CampusInfoHeadTitle span{ 77 | margin-top: 29px; 78 | background: #5691e1; 79 | color: rgb(228, 228, 230); 80 | padding: 2px 5px; 81 | transform: skew(-20deg); 82 | font-size: 12px; 83 | height: 15px; 84 | line-height: 15px; 85 | border-radius: 3px; 86 | font-style: normal; 87 | box-sizing: unset; 88 | } 89 | .CampusInfoHeadTitle span div{ 90 | -webkit-transform: skew(20deg); 91 | } 92 | .CampusInfoHeadWeather{ 93 | font-style: normal!important; 94 | font-size: 13px!important; 95 | color: rgb(63, 125, 211)!important; 96 | margin-top: 32px!important; 97 | margin-left: 20px!important; 98 | } 99 | /*校园资讯控制导航样式*/ 100 | .CampusInfoHeadNav{ 101 | float: left; 102 | width: calc(100% - 24px); 103 | height: 30px; 104 | padding: 0 12px; 105 | background: #f3f6fc; 106 | border-bottom: 1px solid #dcdbdb; 107 | box-sizing: unset; 108 | } 109 | .CampusInfoHeadNav li{ 110 | float: left; 111 | font-size: 14px; 112 | padding: 0 10px; 113 | line-height: 30px; 114 | border-bottom: 1px solid rgba(0,0,0,0); 115 | color: #525252; 116 | margin-right: 5px; 117 | } 118 | .CampusInfoHeadNav li:hover,.CampusInfoHeadNavActive{ 119 | color: #2371d7!important; 120 | border-bottom: 1px solid #3272cb!important; 121 | } 122 | /*校园资讯控制按钮样式*/ 123 | .CampusInfoHeadControl{ 124 | float: right; 125 | } 126 | .CampusInfoHeadControl button{ 127 | float: left; 128 | line-height: 33px; 129 | width: 33px; 130 | height: 33px; 131 | background: none; 132 | color: #548fde; 133 | border: none; 134 | font-size: 16px; 135 | } 136 | .CampusInfoHeadControl .icon-cancel:hover{ 137 | color: #d82222; 138 | } 139 | /*校园资讯控制内容容器样式*/ 140 | .CampusInfoMain{ 141 | width: 100%; 142 | height: calc(100% - 86px); 143 | overflow: hidden; 144 | } 145 | .CampusInfoContainer{ 146 | width: 100%; 147 | height: 100%; 148 | padding: 15px 22px; 149 | display: none; 150 | } 151 | .CampusInfoContainer *{ 152 | float: left; 153 | } 154 | .CampusInfoContLeft{ 155 | width: 180px; 156 | height: 100%; 157 | } 158 | .CampusInfoContCenter{ 159 | width: 355px; 160 | height: 100%; 161 | padding: 0 15px; 162 | } 163 | .CampusInfoContRight{ 164 | width: 170px; 165 | height: 100%; 166 | } 167 | /*左侧内容元素*/ 168 | .CampusInfoContLeftContent:nth-child(2){ 169 | margin: 10px 0; 170 | } 171 | .CampusInfoContLeftContent{ 172 | width: 100%; 173 | height: 134.5px; 174 | position: relative; 175 | cursor: pointer; 176 | } 177 | .CampusInfoContLeftContent img{ 178 | width: 100%; 179 | height: 100%; 180 | } 181 | .CampusInfoContLeftContent p{ 182 | text-align: center; 183 | width: 100%; 184 | background-color: rgba(65, 65, 65, 0.65); 185 | color: #fff; 186 | height: 19px; 187 | position: absolute; 188 | bottom: 0; 189 | } 190 | /*中间内容*/ 191 | .CampusInfoContCenterContent:nth-child(2){ 192 | margin: 10px 0; 193 | } 194 | .CampusInfoContCenterTitle{ 195 | width: 100%; 196 | text-align: center; 197 | font-size: 16px; 198 | color: rgb(17, 80, 159); 199 | font-weight: 500; 200 | margin: 5px 0px; 201 | height: 21px; 202 | overflow: hidden; 203 | text-overflow: ellipsis; 204 | } 205 | .CampusInfoContCenterContent{ 206 | width: 100%; 207 | height: 134.5px; 208 | } 209 | .CampusInfoContCenterCArea4{ 210 | max-width: 100%; 211 | } 212 | .CampusInfoContCenterCArea8{ 213 | min-width: 40%; 214 | max-width: 50%; 215 | } 216 | .CampusInfoContCenterCArea4,.CampusInfoContCenterCArea8{ 217 | height: 28px; 218 | font-size: 14px; 219 | color: #272727; 220 | padding: 0px 10px; 221 | padding-right: 0; 222 | font-family: "SimSun"; 223 | line-height: 27px; 224 | display: block; 225 | border: 1px solid rgba(0,0,0,0); 226 | word-break: break-all; 227 | } 228 | .CampusInfoContCenterCArea4:hover,.CampusInfoContCenterCArea8:hover,.CampusInfoContCenterTitle:hover{ 229 | border-bottom: 1px solid #bd0a01; 230 | color: #bd0a01; 231 | cursor: pointer; 232 | } 233 | /*右侧内容元素*/ 234 | .CampusInfoContRightContent:nth-child(2){ 235 | margin-top: 10px; 236 | height: 135px; 237 | } 238 | .CampusInfoContRightContent{ 239 | width: 100%; 240 | height: 280px; 241 | cursor: pointer; 242 | } 243 | /*加载动画*/ 244 | .CampusInfoLoading{ 245 | width: 100%; 246 | height: 100%; 247 | } 248 | .CampusInfoLoading span{ 249 | display: block; 250 | text-align: center; 251 | position: absolute; 252 | left: calc(50% - 32px); 253 | top: calc(50% - 32px); 254 | } 255 | .CampusInfoLoading span div{ 256 | position: absolute; 257 | top: 25px; 258 | left: 15px; 259 | font-size: 18px; 260 | color: #fff; 261 | } 262 | 263 | /*字体图标*/ 264 | .icon-left:before { content: '\e800'; } /* '' */ 265 | .icon-right:before { content: '\e801'; } /* '' */ 266 | .icon-cancel:before { content: '\e802'; } /* '' */ 267 | .icon-minus:before { content: '\e803'; } /* '' */ 268 | .icon-menu:before { content: '\e804'; } /* '' */ 269 | .icon-play-circled2:before { content: '\e805'; } /* '' */ 270 | .icon-play:before { content: '\e806'; } /* '' */ 271 | .icon-lock:before { content: '\e807'; } /* '' */ 272 | .icon-plus:before { content: '\e808'; } /* '' */ 273 | .icon-cog:before { content: '\e809'; } /* '' */ 274 | .icon-th-list:before { content: '\f009'; } /* '' */ 275 | .icon-ccw:before { content: '\f025'; } /* '' */ 276 | .icon-play-circled:before { content: '\f144'; } /* '' */ 277 | /*旋转*/ 278 | .animate-spin { 279 | -moz-animation: spin 1.5s infinite linear; 280 | -o-animation: spin 1.5s infinite linear; 281 | -webkit-animation: spin 1.5s infinite linear; 282 | animation: spin 1.5s infinite linear; 283 | display: inline-block; 284 | } 285 | @-moz-keyframes spin { 286 | 0% { 287 | -moz-transform: rotate(0deg); 288 | -o-transform: rotate(0deg); 289 | -webkit-transform: rotate(0deg); 290 | transform: rotate(0deg); 291 | } 292 | 100% { 293 | -moz-transform: rotate(359deg); 294 | -o-transform: rotate(359deg); 295 | -webkit-transform: rotate(359deg); 296 | transform: rotate(359deg); 297 | } 298 | } 299 | @-webkit-keyframes spin { 300 | 0% { 301 | -moz-transform: rotate(0deg); 302 | -o-transform: rotate(0deg); 303 | -webkit-transform: rotate(0deg); 304 | transform: rotate(0deg); 305 | } 306 | 307 | 100% { 308 | -moz-transform: rotate(359deg); 309 | -o-transform: rotate(359deg); 310 | -webkit-transform: rotate(359deg); 311 | transform: rotate(359deg); 312 | } 313 | } 314 | @-o-keyframes spin { 315 | 0% { 316 | -moz-transform: rotate(0deg); 317 | -o-transform: rotate(0deg); 318 | -webkit-transform: rotate(0deg); 319 | transform: rotate(0deg); 320 | } 321 | 322 | 100% { 323 | -moz-transform: rotate(359deg); 324 | -o-transform: rotate(359deg); 325 | -webkit-transform: rotate(359deg); 326 | transform: rotate(359deg); 327 | } 328 | } 329 | @-ms-keyframes spin { 330 | 0% { 331 | -moz-transform: rotate(0deg); 332 | -o-transform: rotate(0deg); 333 | -webkit-transform: rotate(0deg); 334 | transform: rotate(0deg); 335 | } 336 | 337 | 100% { 338 | -moz-transform: rotate(359deg); 339 | -o-transform: rotate(359deg); 340 | -webkit-transform: rotate(359deg); 341 | transform: rotate(359deg); 342 | } 343 | } 344 | @keyframes spin { 345 | 0% { 346 | -moz-transform: rotate(0deg); 347 | -o-transform: rotate(0deg); 348 | -webkit-transform: rotate(0deg); 349 | transform: rotate(0deg); 350 | } 351 | 352 | 100% { 353 | -moz-transform: rotate(359deg); 354 | -o-transform: rotate(359deg); 355 | -webkit-transform: rotate(359deg); 356 | transform: rotate(359deg); 357 | } 358 | } -------------------------------------------------------------------------------- /public/css/browser.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | * { 3 | margin: 0; 4 | padding: 0; 5 | font-family: Microsoft YaHei, fontello; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | list-style: none; 9 | } 10 | 11 | body { 12 | margin: 0; 13 | padding: 0; 14 | overflow: hidden; 15 | } 16 | 17 | body, 18 | html { 19 | height: 100%; 20 | -webkit-text-size-adjust: 100%; 21 | -ms-text-size-adjust: 100%; 22 | } 23 | 24 | ul, 25 | li { 26 | margin: 0; 27 | padding: 0; 28 | list-style: none; 29 | } 30 | 31 | button:focus, 32 | button { 33 | outline: none; 34 | cursor: pointer; 35 | } 36 | 37 | a, 38 | a:hover, 39 | a:link, 40 | a:visited, 41 | button, 42 | button:focus, 43 | button:hover, 44 | i, 45 | i:hover, 46 | img, 47 | img:hover, 48 | input, 49 | input:focus, 50 | input:hover, 51 | select:focus, 52 | span, 53 | span:hover, 54 | textarea:focus { 55 | -webkit-transition: all .35s; 56 | -moz-transition: all .35s; 57 | -o-transition: all .35s; 58 | } 59 | 60 | a:hover, 61 | a:link, 62 | a:visited { 63 | text-decoration: none; 64 | } 65 | 66 | button:hover { 67 | opacity: .8; 68 | cursor: pointer; 69 | } 70 | 71 | [ripple], 72 | button { 73 | position: relative; 74 | transform: translate3d(0, 0, 0); 75 | overflow: hidden; 76 | } 77 | 78 | [ripple]:after, 79 | button:after { 80 | content: ""; 81 | display: block; 82 | position: absolute; 83 | width: 100%; 84 | height: 100%; 85 | top: 0; 86 | left: 0; 87 | pointer-events: none; 88 | background-image: radial-gradient(circle, #666 10%, transparent 10.01%); 89 | background-repeat: no-repeat; 90 | background-position: 50%; 91 | transform: scale(10, 10); 92 | opacity: 0; 93 | transition: transform .3s, opacity .5s; 94 | } 95 | 96 | [ripple]:active:after, 97 | button:active:after { 98 | transform: scale(0, 0); 99 | opacity: .3; 100 | transition: 0s; 101 | } 102 | 103 | .clearfix { 104 | zoom: 1; 105 | } 106 | 107 | 108 | /*通用头部样式*/ 109 | 110 | .bowerTop { 111 | width: 100%; 112 | height: 1px; 113 | } 114 | 115 | .bowerHeader { 116 | position: relative; 117 | height: 20px; 118 | } 119 | 120 | .browerHeaderControl { 121 | position: absolute; 122 | right: 0px; 123 | } 124 | 125 | .browerHeaderControl button { 126 | width: 50px; 127 | height: 25px; 128 | border: transparent; 129 | background: #fff; 130 | font-size: 13px; 131 | } 132 | 133 | .browerHeaderControl button:hover { 134 | background: #eee; 135 | } 136 | 137 | .browerHeaderControl .close:hover { 138 | background: #E83C3C!important; 139 | color: #fff!important; 140 | } 141 | 142 | .browerHeaderControl .icon-cancel:hover { 143 | background: #e66350 !important; 144 | color: #fff; 145 | } 146 | 147 | .browerHeaderControl .icon-minus { 148 | color: #333; 149 | } 150 | 151 | 152 | /*浏览器搜索样式*/ 153 | 154 | .BrowerHead { 155 | width: 100%; 156 | height: 26px; 157 | display: inline-flex; 158 | padding: 4px 0; 159 | background: #f5f5f5; 160 | border-top: 1px solid #ccc; 161 | border-bottom: 1px solid #ccc; 162 | } 163 | 164 | .Favorites { 165 | width: 100%; 166 | height: 26px; 167 | display: inline-flex; 168 | padding: 4px 0; 169 | background: #ffffff; 170 | /* border-top: 1px solid #ccc; */ 171 | border-bottom: 1px solid #ccc; 172 | } 173 | 174 | .Favorites>ul>li { 175 | height: 25px; 176 | margin: 0 3px; 177 | border-radius: 5px; 178 | padding: 0 5px; 179 | background: -webkit-linear-gradient(left, white, #f1f1ff); 180 | -webkit-transition: all .3s; 181 | -moz-transition: all .3s; 182 | -ms-transition: all .3s; 183 | -o-transition: all .3s; 184 | transition: all .3s; 185 | cursor: pointer; 186 | float: left; 187 | -moz-user-select: none; 188 | -webkit-user-select: none; 189 | -ms-user-select: none; 190 | -khtml-user-select: none; 191 | user-select: none; 192 | } 193 | 194 | .Favorites>ul>li:hover { 195 | background: #f1f1f1; 196 | } 197 | 198 | .Favorites>ul>li img { 199 | width: 20px; 200 | float: left; 201 | line-height: 25px; 202 | margin: 3px 3px; 203 | } 204 | 205 | .Favorites>ul>li p { 206 | width: auto; 207 | max-width: 81px; 208 | float: left; 209 | font-size: 12px; 210 | line-height: 25px; 211 | margin: 0 3px; 212 | overflow: hidden; 213 | } 214 | 215 | .BrowerHead button { 216 | float: left; 217 | overflow: hidden; 218 | margin: 0 5px; 219 | background: none; 220 | width: 26px; 221 | border: none; 222 | font-size: 16px; 223 | } 224 | 225 | .BrowerHead button:hover { 226 | background: #dcdcdc; 227 | border-radius: 3px; 228 | } 229 | 230 | .BrowerUrlArea { 231 | width: calc(100% - 150px) !important; 232 | padding: 2px 5px !important; 233 | text-align: left !important; 234 | border: 1px solid #dcdcdc; 235 | background: #fff; 236 | border-radius: 3px; 237 | } 238 | 239 | .BrowerUrlArea>i { 240 | margin: 2px; 241 | } 242 | 243 | .BrowerUrlArea * { 244 | float: left; 245 | } 246 | 247 | .BrowerUrlArea span { 248 | float: left; 249 | width: 20px; 250 | text-align: center; 251 | line-height: 22px; 252 | font-size: 14px; 253 | } 254 | 255 | .BrowerUrlArea input { 256 | float: left; 257 | width: calc(100% - 42px) !important; 258 | height: 20px; 259 | border: 0 solid #d2d2d2; 260 | outline: none; 261 | text-indent: 10px; 262 | border-left: 1px solid #d2d2d2; 263 | display: block; 264 | background: none; 265 | } 266 | 267 | .BrowerHead .icon-ellipsis-vert { 268 | color: #8c8c8c; 269 | font-weight: lighter; 270 | font-size: 18px; 271 | padding-top: 2px; 272 | } 273 | 274 | .FavoritesMore { 275 | position: absolute; 276 | right: 5px; 277 | padding: 2px; 278 | cursor: pointer; 279 | color: #CCCCCC; 280 | } 281 | 282 | #FavoritesUl { 283 | overflow: hidden; 284 | z-index: 99999999; 285 | } 286 | 287 | 288 | /* 标签页右键菜单样式 */ 289 | 290 | #US_TagSet { 291 | z-index: 999; 292 | } 293 | 294 | .icon-ellipsis-verter { 295 | color: #8c8c8c; 296 | font-weight: lighter; 297 | font-size: 18px; 298 | padding-top: 2px; 299 | } 300 | 301 | .bowerHeaderSeach .bowerMenu { 302 | float: right; 303 | } 304 | 305 | .bowerHeaderSeach .bowerMenu:hover { 306 | background: #ddd; 307 | } 308 | 309 | .bowerHeaderSeach .icon-menu { 310 | font-size: 21px; 311 | color: #5a5a5a; 312 | } 313 | 314 | 315 | /*选项卡样式*/ 316 | 317 | .bowerCreaterWindow li { 318 | position: relative; 319 | max-width: 180px !important; 320 | width: 150px; 321 | min-width: 10px !important; 322 | top: 1px; 323 | height: 30px; 324 | display: initial; 325 | margin-right: 10px; 326 | text-align: center; 327 | color: #000; 328 | line-height: 43px; 329 | background-color: #e2e2e2; 330 | border-top: 1px solid #a2a2a2; 331 | z-index: 1; 332 | -webkit-app-region: no-drag; 333 | -webkit-transition: all .3s cubic-bezier(0.3, .1, .58, 1); 334 | -moz-transition: all .3s cubic-bezier(0.3, .1, .58, 1); 335 | transition: all .3s cubic-bezier(0.3, .1, .58, 1); 336 | -moz-user-select: none; 337 | -webkit-user-select: none; 338 | -ms-user-select: none; 339 | -khtml-user-select: none; 340 | user-select: none; 341 | } 342 | 343 | .BrowerActive { 344 | background-color: #f2f2f2 !important; 345 | border-top-color: #a9a9a9 !important; 346 | z-index: 999 !important; 347 | } 348 | 349 | .Listindex { 350 | z-index: 999 !important; 351 | } 352 | 353 | .BrowerActive { 354 | border-top: 1px solid #ccc!important; 355 | } 356 | 357 | .BrowerActive:before { 358 | border-top: 1px solid #ccc!important; 359 | background-color: #f2f2f2 !important; 360 | border-right-color: #ccc !important; 361 | } 362 | 363 | .BrowerActive:after { 364 | border-top: 1px solid #ccc!important; 365 | background-color: #f2f2f2 !important; 366 | border-left-color: #ccc !important; 367 | } 368 | 369 | .bowerCreaterWindow li:before, 370 | .bowerCreaterWindow li:after { 371 | content: ''; 372 | position: absolute; 373 | display: block; 374 | width: 10px; 375 | height: 29px; 376 | top: -1px; 377 | background-color: #e2e2e2; 378 | border-top: 1px solid #a2a2a2; 379 | -webkit-transition: all .3s cubic-bezier(0.3, .1, .58, 1); 380 | -moz-transition: all .3s cubic-bezier(0.3, .1, .58, 1); 381 | transition: all .3s cubic-bezier(0.3, .1, .58, 1); 382 | } 383 | 384 | .bowerCreaterWindow li:before { 385 | right: -6px; 386 | border-right: 1px solid #a2a2a2; 387 | transform: skewX(20deg); 388 | } 389 | 390 | .bowerCreaterWindow li:after { 391 | left: -6px; 392 | transform: skewX(-20deg); 393 | border-left: 1px solid #a2a2a2; 394 | } 395 | 396 | .bowerCreaterWindow { 397 | float: left; 398 | width: calc(100% - 195px); 399 | height: 29px; 400 | display: inline-flex; 401 | overflow: unset; 402 | margin-left: 20px; 403 | -webkit-transition: all .3s cubic-bezier(0.3, .1, .58, 1); 404 | -moz-transition: all .3s cubic-bezier(0.3, .1, .58, 1); 405 | transition: all .3s cubic-bezier(0.3, .1, .58, 1); 406 | } 407 | 408 | .BrowerListBody { 409 | display: inline-block; 410 | position: relative; 411 | width: calc(100% - 3px); 412 | height: 32px; 413 | z-index: 2; 414 | top: -2px; 415 | } 416 | 417 | .BrowerList img { 418 | float: left; 419 | width: 16px; 420 | height: 16px; 421 | margin-top: 8px; 422 | } 423 | 424 | .BrowerList p { 425 | float: left; 426 | min-width: 0; 427 | max-width: 80%; 428 | width: calc(100% - 40px); 429 | margin: 0 3px; 430 | overflow: hidden; 431 | text-overflow: ellipsis; 432 | white-space: nowrap; 433 | line-height: 34px; 434 | text-align: left; 435 | font-size: 12px; 436 | margin-top: -1px; 437 | } 438 | 439 | .BrowerList i { 440 | float: right; 441 | width: 8px; 442 | height: 8px; 443 | padding: 4px; 444 | border-radius: 50%; 445 | font-size: 11px; 446 | text-align: center; 447 | line-height: 9px; 448 | margin-top: 8px; 449 | color: #888888; 450 | } 451 | 452 | .BrowerList i:hover { 453 | background: #ba4848; 454 | color: #fff; 455 | } 456 | 457 | button.BrowwerAdd { 458 | width: 32px !important; 459 | height: 18px; 460 | padding: 7px; 461 | margin: 6px 0 0 0; 462 | -webkit-transform: skew(20deg); 463 | -moz-transform: skew(20deg); 464 | -o-transform: skew(20deg); 465 | background: white; 466 | border: 1px solid #ccc; 467 | border-radius: 3px; 468 | -webkit-app-region: no-drag; 469 | } 470 | 471 | 472 | /*浏览器显示网页部分样式*/ 473 | 474 | .BrowerContainer { 475 | height: calc(100% - 115px); 476 | position: absolute; 477 | width: 100%; 478 | left: 0; 479 | top: 116px; 480 | } 481 | 482 | .BrowerContainer webview, 483 | webview object { 484 | height: 100% !important; 485 | width: 100% !important; 486 | } 487 | 488 | 489 | /*右键菜单样式*/ 490 | 491 | .MouseMenuMain { 492 | position: absolute; 493 | z-index: 22; 494 | display: none; 495 | width: auto; 496 | height: auto; 497 | min-width: 90pt; 498 | background: #fff; 499 | box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.14), 0 1px 7px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -1px rgba(0, 0, 0, 0.2); 500 | -moz-user-select: none; 501 | -webkit-user-select: none; 502 | -ms-user-select: none; 503 | -khtml-user-select: none; 504 | user-select: none; 505 | } 506 | 507 | .MouseMenuMain li { 508 | width: auto; 509 | max-width: 400px; 510 | font-size: 13px; 511 | padding: 6px 18px; 512 | color: #333; 513 | text-align: left; 514 | white-space: nowrap; 515 | margin-bottom: 2px; 516 | } 517 | 518 | .MouseMenuMain li span { 519 | float: right; 520 | margin-left: 40px; 521 | color: #bfbfbf; 522 | } 523 | 524 | .MouseMenuMain li:hover { 525 | background-color: #eee; 526 | color: #000; 527 | cursor: pointer; 528 | } 529 | 530 | .US_BookmarkSet { 531 | position: absolute; 532 | z-index: 22; 533 | width: auto; 534 | height: auto; 535 | display: none; 536 | min-width: 90pt; 537 | background: #fff; 538 | z-index: 999999999; 539 | box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.14), 0 1px 7px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -1px rgba(0, 0, 0, 0.2); 540 | -moz-user-select: none; 541 | -webkit-user-select: none; 542 | -ms-user-select: none; 543 | -khtml-user-select: none; 544 | user-select: none; 545 | } 546 | 547 | .US_BookmarkSet li { 548 | width: auto; 549 | max-width: 400px; 550 | font-size: 13px; 551 | padding: 6px 18px; 552 | color: #333; 553 | text-align: left; 554 | white-space: nowrap; 555 | margin-bottom: 2px; 556 | } 557 | 558 | .US_BookmarkSet li:hover { 559 | background-color: #eee; 560 | color: #000; 561 | cursor: pointer; 562 | } 563 | 564 | .MouseMenuMainer { 565 | position: absolute; 566 | z-index: 22; 567 | width: auto; 568 | height: auto; 569 | min-width: 90pt; 570 | background: #fff; 571 | box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.14), 0 1px 7px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -1px rgba(0, 0, 0, 0.2); 572 | -moz-user-select: none; 573 | -webkit-user-select: none; 574 | -ms-user-select: none; 575 | -khtml-user-select: none; 576 | user-select: none; 577 | } 578 | 579 | .MouseMenuMainer { 580 | width: 300px; 581 | } 582 | 583 | .MouseMenuMainer li { 584 | width: auto; 585 | max-width: 400px; 586 | font-size: 13px; 587 | padding: 6px 18px; 588 | color: #333; 589 | text-align: left; 590 | white-space: nowrap; 591 | margin-bottom: 2px; 592 | } 593 | 594 | .MouseMenuMainer li img { 595 | width: 20px; 596 | float: left; 597 | line-height: 25px; 598 | margin: 3px 3px; 599 | } 600 | 601 | .MouseMenuMainer li p { 602 | font-size: 12px; 603 | line-height: 25px; 604 | margin: 0 3px; 605 | } 606 | 607 | .MouseMenuMainer li:hover { 608 | background-color: #eee; 609 | color: #000; 610 | cursor: pointer; 611 | } 612 | 613 | .MouseMenuMainStep { 614 | width: 100%; 615 | padding: 0 !important; 616 | height: 1px; 617 | background: #e8e8e8; 618 | margin: 5px 0; 619 | } 620 | 621 | 622 | /*查找菜单样式*/ 623 | 624 | .BrowerFind { 625 | width: 320px; 626 | height: 35px; 627 | background: #fff; 628 | box-shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 0 1px rgba(0, 0, 0, .2); 629 | position: absolute; 630 | right: 20px; 631 | top: 80px; 632 | padding: 5px; 633 | z-index: 10; 634 | -webkit-animation-duration: .35s; 635 | animation-duration: .35s; 636 | -webkit-animation-fill-mode: both; 637 | animation-fill-mode: both; 638 | -webkit-animation-name: fadeIn; 639 | animation-name: fadeIn; 640 | display: none; 641 | overflow: hidden; 642 | -moz-user-select: none; 643 | -webkit-user-select: none; 644 | -ms-user-select: none; 645 | -khtml-user-select: none; 646 | user-select: none; 647 | } 648 | 649 | .BrowerFind * { 650 | float: left; 651 | } 652 | 653 | .BrowerFind input { 654 | width: 150px; 655 | height: 35px; 656 | border: none; 657 | font-size: 14px; 658 | padding: 0 2px; 659 | } 660 | 661 | .BrowerFind input:focus { 662 | outline: none; 663 | } 664 | 665 | .BrowerFind span { 666 | width: 50px; 667 | font-size: 12px; 668 | line-height: 35px; 669 | color: #888888; 670 | background: #fff; 671 | text-align: center; 672 | border-right: 1px solid #eee; 673 | } 674 | 675 | .BrowerFind button { 676 | background: none; 677 | border: none; 678 | width: 32px; 679 | margin: 0 3px; 680 | height: 35px; 681 | color: #888888; 682 | font-weight: bold; 683 | font-size: 18px; 684 | } 685 | 686 | .BrowerFind .icon-times { 687 | font-size: 14px; 688 | } 689 | 690 | 691 | /* 历史记录样式 */ 692 | 693 | .HistoryMain { 694 | width: 100%; 695 | height: 100%; 696 | } 697 | 698 | .HistoryMain * { 699 | box-sizing: border-box; 700 | } 701 | 702 | .HistoryHead { 703 | width: 100%; 704 | height: 55px; 705 | background: #0b7aeb; 706 | -moz-user-select: none; 707 | -webkit-user-select: none; 708 | -ms-user-select: none; 709 | -khtml-user-select: none; 710 | user-select: none; 711 | } 712 | 713 | input::-webkit-input-placeholder { 714 | /* WebKit browsers */ 715 | color: #fff; 716 | } 717 | 718 | input:-moz-placeholder { 719 | /* Mozilla Firefox 4 to 18 */ 720 | color: #fff; 721 | } 722 | 723 | input::-moz-placeholder { 724 | /* Mozilla Firefox 19+ */ 725 | color: #fff; 726 | } 727 | 728 | input::-ms-input-placeholder { 729 | /* Internet Explorer 10+ */ 730 | color: #fff; 731 | } 732 | 733 | .HistorySelect { 734 | width: 500px; 735 | height: 100%; 736 | margin: auto; 737 | } 738 | 739 | .HistorySelect div { 740 | width: 450px; 741 | height: 45px; 742 | background: #0062ea; 743 | position: relative; 744 | top: 5px; 745 | margin: auto; 746 | } 747 | 748 | .HistorySelect input { 749 | border: 0px; 750 | background: #0062ea; 751 | width: 400px; 752 | height: 35px; 753 | position: relative; 754 | top: 5px; 755 | color: #ffffff; 756 | margin-left: 20px; 757 | outline: none; 758 | z-index: 99999; 759 | } 760 | 761 | .browerHeaderControler { 762 | position: relative; 763 | } 764 | 765 | .HistoryHead p { 766 | float: left; 767 | font-size: 18px; 768 | color: #fff; 769 | line-height: 55px; 770 | padding-left: 15px; 771 | } 772 | 773 | .HistoryContainer { 774 | padding: 0px 100px 20px; 775 | height: 866px; 776 | background: #eee; 777 | overflow: auto; 778 | width: 1200px; 779 | float: right; 780 | } 781 | 782 | .Historyoperating { 783 | height: 866px; 784 | background: #eee; 785 | overflow: auto; 786 | width: 251px; 787 | float: left; 788 | } 789 | 790 | .Historyoperating ul { 791 | margin: 40px 00px; 792 | } 793 | 794 | .Historyoperating ul li { 795 | width: auto; 796 | transition: all .3s; 797 | height: 40px; 798 | line-height: 40px; 799 | padding: 0px 20px; 800 | cursor: pointer; 801 | } 802 | 803 | .Historyoperating ul li:hover { 804 | background: #dfdfdf; 805 | } 806 | 807 | .HistoryCard { 808 | width: 100%; 809 | background: #fff; 810 | /*box-shadow: 0 3px 3px 0 rgba(0,0,0,0.14), 0 1px 7px 0 rgba(0,0,0,0.12), 0 3px 1px -1px rgba(0,0,0,0.2);*/ 811 | margin-top: 20px; 812 | box-shadow: 0px 1px 1px 1px #c7c7c7; 813 | border-radius: 4px; 814 | } 815 | 816 | .HistoryCardContainer { 817 | width: 100%; 818 | } 819 | 820 | .HistoryCardContainer li { 821 | width: 100%; 822 | height: 35px; 823 | line-height: 25px; 824 | margin-bottom: 2px; 825 | padding: 5px; 826 | } 827 | 828 | .HistoryCardContainer li:hover { 829 | background: #eee; 830 | cursor: pointer; 831 | } 832 | 833 | .HistoryCardContainer li * { 834 | float: left; 835 | } 836 | 837 | .HistoryCardContainer li span { 838 | width: 93px; 839 | font-size: 12px; 840 | color: #7f7e7e; 841 | -moz-user-select: none; 842 | -webkit-user-select: none; 843 | -ms-user-select: none; 844 | -khtml-user-select: none; 845 | user-select: none; 846 | } 847 | 848 | .HistoryCardContainer li div { 849 | width: calc(100% - 120px); 850 | height: 100%; 851 | font-size: 13px; 852 | } 853 | 854 | .HistoryCardContainer li img { 855 | width: 15px; 856 | margin: 5px; 857 | } 858 | 859 | .HistoryCardContainer li p { 860 | height: 25px; 861 | width: 200px; 862 | overflow: hidden; 863 | text-overflow: ellipsis; 864 | white-space: nowrap; 865 | } 866 | 867 | .HistoryCardHead { 868 | width: 100%; 869 | font-weight: bold; 870 | font-size: 18px; 871 | padding: 5px; 872 | border-bottom: 1px solid #eee; 873 | line-height: 40px; 874 | -moz-user-select: none; 875 | -webkit-user-select: none; 876 | -ms-user-select: none; 877 | -khtml-user-select: none; 878 | user-select: none; 879 | } 880 | 881 | .history_body span { 882 | padding-right: 20px; 883 | overflow: hidden; 884 | text-overflow: ellipsis; 885 | width: 180px; 886 | } 887 | 888 | .history_body p { 889 | width: 270px; 890 | height: 20px; 891 | padding-right: 20px; 892 | overflow: hidden; 893 | text-overflow: ellipsis; 894 | } 895 | 896 | .history_body { 897 | display: inline-flex; 898 | margin-bottom: 10px; 899 | overflow: hidden; 900 | text-overflow: ellipsis; 901 | } 902 | 903 | 904 | /* 反馈样式 */ 905 | 906 | .FeedBackMain * { 907 | box-sizing: border-box; 908 | } 909 | 910 | .FeedBackMain { 911 | width: 100%; 912 | height: 100%; 913 | -moz-user-select: none; 914 | -webkit-user-select: none; 915 | -ms-user-select: none; 916 | -khtml-user-select: none; 917 | user-select: none; 918 | } 919 | 920 | .FeedBackHead { 921 | width: 100%; 922 | height: 55px; 923 | border-bottom: 2px solid #38f; 924 | } 925 | 926 | .FeedBackHead img { 927 | float: left; 928 | width: 30px; 929 | margin: 11px; 930 | } 931 | 932 | .FeedBackHead p { 933 | line-height: 55px; 934 | font-size: 16px; 935 | } 936 | 937 | .FeedBackContainer { 938 | width: 100%; 939 | padding: 10px; 940 | } 941 | 942 | .FeedBackContainer input, 943 | .FeedBackContainer textarea { 944 | width: 100%; 945 | border: 1px solid #eee; 946 | height: 35px; 947 | border-radius: 3px; 948 | margin-bottom: 10px; 949 | padding: 4px; 950 | resize: none; 951 | } 952 | 953 | .FeedBackContainer textarea { 954 | height: 150px!important; 955 | } 956 | 957 | .FeedBackContainer input:focus, 958 | .FeedBackContainer textarea:focus { 959 | outline: none; 960 | border: 1px solid #38f; 961 | } 962 | 963 | .FeedBackContainer span { 964 | float: left; 965 | color: #e85151; 966 | font-size: 14px; 967 | margin-top: 10px; 968 | text-indent: 10px; 969 | } 970 | 971 | .FeedBackContainer button { 972 | float: right; 973 | padding: 0 10px; 974 | height: 35px; 975 | background: #38f; 976 | color: #fff; 977 | border: 1px solid #eee; 978 | border-radius: 3px; 979 | overflow: hidden; 980 | } 981 | 982 | .HistoryBottom { 983 | width: 100%; 984 | height: 55px; 985 | transition: all .3s; 986 | position: fixed; 987 | background: #0b7aeb; 988 | bottom: -55px; 989 | } 990 | 991 | .HistoryBottomContent { 992 | width: 700px; 993 | height: auto; 994 | margin: auto; 995 | color: #ffffff; 996 | } 997 | 998 | .Historycount { 999 | width: auto; 1000 | float: left; 1001 | padding: 16px; 1002 | font-size: 17px; 1003 | z-index: 100; 1004 | } 1005 | 1006 | .HistoryPick { 1007 | width: auto; 1008 | float: right; 1009 | } 1010 | 1011 | .HistoryPick div { 1012 | float: left; 1013 | padding: 16px; 1014 | font-size: 17px; 1015 | z-index: 100; 1016 | cursor: pointer; 1017 | } 1018 | 1019 | #qingchu>div { 1020 | width: 35px; 1021 | height: 20px; 1022 | font-size: 12px; 1023 | float: right; 1024 | text-align: center; 1025 | line-height: 20px; 1026 | border: 1px solid #ccc; 1027 | border-radius: 5px; 1028 | margin: 10px 5px 5px 5px; 1029 | transition: all .3s; 1030 | opacity: 0; 1031 | cursor: pointer; 1032 | } 1033 | 1034 | .item { 1035 | /*z-index: 9999;*/ 1036 | } 1037 | 1038 | .Historyinput { 1039 | margin-top: 7px; 1040 | -webkit-app-region: no-drag; 1041 | margin-right: 4px; 1042 | } 1043 | 1044 | 1045 | /*加载提示*/ 1046 | 1047 | .BrowerTips { 1048 | left: 0px; 1049 | bottom: 0px; 1050 | float: left; 1051 | position: absolute; 1052 | max-width: 30%; 1053 | height: 30px; 1054 | line-height: 30px; 1055 | z-index: 2; 1056 | font-size: 12px; 1057 | box-shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 0 1px rgba(0, 0, 0, .2); 1058 | word-wrap: normal; 1059 | background: #fff; 1060 | text-overflow: ellipsis; 1061 | word-spacing: normal; 1062 | word-break: break-all; 1063 | -webkit-transition: all .35s; 1064 | -moz-transition: all .35s; 1065 | -o-transition: all .35s; 1066 | -moz-user-select: none; 1067 | -webkit-user-select: none; 1068 | -ms-user-select: none; 1069 | -khtml-user-select: none; 1070 | user-select: none; 1071 | } 1072 | 1073 | 1074 | /*关于我们*/ 1075 | 1076 | .FeedBackContainer p { 1077 | padding: 10px; 1078 | font-size: 14px; 1079 | font-weight: bold; 1080 | } 1081 | 1082 | .FeedBackContainer p span { 1083 | float: unset; 1084 | } 1085 | 1086 | 1087 | /* 首页end */ 1088 | 1089 | .column.over { 1090 | border: 1px dashed #000; 1091 | } 1092 | 1093 | .column { 1094 | cursor: move; 1095 | } 1096 | 1097 | .animated { 1098 | -webkit-animation-duration: .35s; 1099 | animation-duration: .35s; 1100 | -webkit-animation-fill-mode: both; 1101 | animation-fill-mode: both 1102 | } 1103 | 1104 | .animated.infinite { 1105 | -webkit-animation-iteration-count: infinite; 1106 | animation-iteration-count: infinite 1107 | } 1108 | 1109 | @-webkit-keyframes fadeIn { 1110 | from { 1111 | opacity: 0 1112 | } 1113 | to { 1114 | opacity: 1 1115 | } 1116 | } 1117 | 1118 | @keyframes fadeIn { 1119 | from { 1120 | opacity: 0 1121 | } 1122 | to { 1123 | opacity: 1 1124 | } 1125 | } 1126 | 1127 | .fadeIn { 1128 | -webkit-animation-name: fadeIn; 1129 | animation-name: fadeIn 1130 | } 1131 | 1132 | @font-face { 1133 | font-family: 'fontello'; 1134 | src: url('../font/fontello.eot?70736739'); 1135 | src: url('../font/fontello.eot?70736739#iefix') format('embedded-opentype'), url('../font/fontello.woff?70736739') format('woff'), url('../font/fontello.ttf?70736739') format('truetype'), url('../font/fontello.svg?70736739#fontello') format('svg'); 1136 | font-weight: normal; 1137 | font-style: normal; 1138 | } 1139 | 1140 | [class^="icon-"], 1141 | [class*=" icon-"] { 1142 | display: inline-block; 1143 | font: normal normal normal 14px/1 fontello, Microsoft YaHei; 1144 | font-size: inherit; 1145 | text-rendering: auto; 1146 | -webkit-font-smoothing: antialiased; 1147 | -moz-osx-font-smoothing: grayscale; 1148 | } 1149 | 1150 | .icon-left:before { 1151 | content: '\e800'; 1152 | } 1153 | 1154 | 1155 | /* '' */ 1156 | 1157 | .icon-right:before { 1158 | content: '\e801'; 1159 | } 1160 | 1161 | 1162 | /* '' */ 1163 | 1164 | .icon-cancel:before { 1165 | content: '\e802'; 1166 | } 1167 | 1168 | 1169 | /* '' */ 1170 | 1171 | .icon-minus:before { 1172 | content: '\e803'; 1173 | } 1174 | 1175 | 1176 | /* '' */ 1177 | 1178 | .icon-menu:before { 1179 | content: '\e804'; 1180 | } 1181 | 1182 | 1183 | /* '' */ 1184 | 1185 | .icon-play-circled2:before { 1186 | content: '\e805'; 1187 | } 1188 | 1189 | 1190 | /* '' */ 1191 | 1192 | .icon-play:before { 1193 | content: '\e806'; 1194 | } 1195 | 1196 | 1197 | /* '' */ 1198 | 1199 | .icon-lock:before { 1200 | content: '\e807'; 1201 | } 1202 | 1203 | 1204 | /* '' */ 1205 | 1206 | .icon-plus:before { 1207 | content: '\e808'; 1208 | } 1209 | 1210 | 1211 | /* '' */ 1212 | 1213 | .icon-cog:before { 1214 | content: '\e809'; 1215 | } 1216 | 1217 | 1218 | /* '' */ 1219 | 1220 | .icon-cw:before { 1221 | content: '\e80a'; 1222 | } 1223 | 1224 | 1225 | /* '' */ 1226 | 1227 | .icon-times:before { 1228 | content: '\ebc4'; 1229 | } 1230 | 1231 | 1232 | /* '' */ 1233 | 1234 | .icon-window-maximize:before { 1235 | content: '\ec0f'; 1236 | } 1237 | 1238 | 1239 | /* '' */ 1240 | 1241 | .icon-window-minimize:before { 1242 | content: '\ec10'; 1243 | } 1244 | 1245 | 1246 | /* '' */ 1247 | 1248 | .icon-window-restore:before { 1249 | content: '\ec11'; 1250 | } 1251 | 1252 | 1253 | /* '' */ 1254 | 1255 | .icon-angle-up:before { 1256 | content: '\f106'; 1257 | } 1258 | 1259 | 1260 | /* '' */ 1261 | 1262 | .icon-angle-down:before { 1263 | content: '\f107'; 1264 | } 1265 | 1266 | 1267 | /* '' */ 1268 | 1269 | .icon-ellipsis-vert:before { 1270 | content: '\f142'; 1271 | } 1272 | 1273 | 1274 | /* '' */ 1275 | 1276 | 1277 | /*滚动条*/ 1278 | 1279 | *::-webkit-scrollbar { 1280 | width: 7px; 1281 | height: 7px; 1282 | background: none; 1283 | } 1284 | 1285 | *::-webkit-scrollbar-button { 1286 | display: none; 1287 | } 1288 | 1289 | *::-webkit-scrollbar-track { 1290 | background: none; 1291 | } 1292 | 1293 | *::-webkit-scrollbar-track-piece { 1294 | display: none; 1295 | } 1296 | 1297 | *::-webkit-scrollbar-thumb { 1298 | background: rgba(0, 0, 0, 0.3); 1299 | position: absolute; 1300 | width: 3px; 1301 | right: 0; 1302 | top: 0; 1303 | bottom: 0; 1304 | visibility: hidden\9; 1305 | /* Target only IE7 and IE8 with this hack */ 1306 | opacity: .01; 1307 | -webkit-transition: .2s; 1308 | -moz-transition: .2s; 1309 | -o-transition: .2s; 1310 | transition: .2s; 1311 | -moz-border-radius: 3px; 1312 | -webkit-border-radius: 3px; 1313 | border-radius: 3px; 1314 | } 1315 | 1316 | *::-webkit-scrollbar-thumb:active, 1317 | *::-webkit-scrollbar-thumb:hover { 1318 | background: rgba(0, 0, 0, .50); 1319 | } 1320 | 1321 | *::-webkit-scrollbar-corner { 1322 | display: none; 1323 | } 1324 | 1325 | *::-webkit-scrollbar-resizer { 1326 | display: none; 1327 | } -------------------------------------------------------------------------------- /public/font/fontello.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/public/font/fontello.eot -------------------------------------------------------------------------------- /public/font/fontello.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Copyright (C) 2018 by original authors @ fontello.com 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /public/font/fontello.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/public/font/fontello.ttf -------------------------------------------------------------------------------- /public/font/fontello.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/public/font/fontello.woff -------------------------------------------------------------------------------- /public/font/fontello.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/public/font/fontello.woff2 -------------------------------------------------------------------------------- /public/font/simsun.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/public/font/simsun.ttf -------------------------------------------------------------------------------- /public/img/Code/Array数据类型.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/public/img/Code/Array数据类型.jpg -------------------------------------------------------------------------------- /public/img/Code/字符串处理函数.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/public/img/Code/字符串处理函数.jpg -------------------------------------------------------------------------------- /public/img/Code/数字处理函数.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/public/img/Code/数字处理函数.jpg -------------------------------------------------------------------------------- /public/img/NetWorkData/VMware-esxi安装.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/public/img/NetWorkData/VMware-esxi安装.jpg -------------------------------------------------------------------------------- /public/img/NetWorkData/VMware-esxi配置.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/public/img/NetWorkData/VMware-esxi配置.jpg -------------------------------------------------------------------------------- /public/img/NetWorkData/制作磁盘阵列.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/public/img/NetWorkData/制作磁盘阵列.jpg -------------------------------------------------------------------------------- /public/img/ProductData/AI制作绘制icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/public/img/ProductData/AI制作绘制icon.jpg -------------------------------------------------------------------------------- /public/img/ProductData/Axure原型图策划.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/public/img/ProductData/Axure原型图策划.jpg -------------------------------------------------------------------------------- /public/img/ProductData/UI设计图绘制.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/public/img/ProductData/UI设计图绘制.jpg -------------------------------------------------------------------------------- /public/img/VideoTeach/VideoTeach1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/public/img/VideoTeach/VideoTeach1.png -------------------------------------------------------------------------------- /public/img/VideoTeach/VideoTeach2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/public/img/VideoTeach/VideoTeach2.png -------------------------------------------------------------------------------- /public/img/VideoTeach/VideoTeach3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/public/img/VideoTeach/VideoTeach3.png -------------------------------------------------------------------------------- /public/img/advert/advert1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/public/img/advert/advert1.jpg -------------------------------------------------------------------------------- /public/img/advert/advert2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/public/img/advert/advert2.jpg -------------------------------------------------------------------------------- /public/img/advert/advert3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/public/img/advert/advert3.jpg -------------------------------------------------------------------------------- /public/img/advert/advert4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/public/img/advert/advert4.jpg -------------------------------------------------------------------------------- /public/img/head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/public/img/head.png -------------------------------------------------------------------------------- /public/img/loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/public/img/loading.png -------------------------------------------------------------------------------- /public/img/tray/app.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/public/img/tray/app.icns -------------------------------------------------------------------------------- /public/img/tray/app.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/public/img/tray/app.ico -------------------------------------------------------------------------------- /public/img/tray/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/public/img/tray/logo.png -------------------------------------------------------------------------------- /public/img/tray/logo1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/public/img/tray/logo1.png -------------------------------------------------------------------------------- /public/js/CampusInfo-data.js: -------------------------------------------------------------------------------- 1 | Namespace.register('CampusInfo'); 2 | /*广告数组*/ 3 | //script是跳转链接 4 | //img是广告图 5 | CampusInfo.AdvertData = [ 6 | {"script": "https://s.click.taobao.com/t?e=m%3D2%26s%3D01CA%2FOv7j1ocQipKwQzePCperVdZeJviK7Vc7tFgwiFRAdhuF14FMZVDjYODMa5D5x%2BIUlGKNpVpkZoesg6H2DLkWy%2FWNDI6qDkzyuS4OqpRZq0jLDZK045N7u7NTPnpvgfyVVUAbkzCbAGjvJeFYhvzeiceWLrTBmf7LSR66ajB2BnU%2FAw9MfB0z8qlrv%2BjxgxdTc00KD8%3D", "img": "public/img/advert/advert1.jpg"}, 7 | {"script": "https://s.click.taobao.com/t?e=m%3D2%26s%3DMylYQi2EJA8cQipKwQzePCperVdZeJviK7Vc7tFgwiFRAdhuF14FMaTontUilVOD8sviUM61dt1pkZoesg6H2DLkWy%2FWNDI6qDkzyuS4OqpRZq0jLDZK045N7u7NTPnpvgfyVVUAbkzCbAGjvJeFYhvzeiceWLrTM7kxpdONUAIFqMlk%2BHscgie8iDqaHto6xAa%2FwPGIEAmtCcqzniGwRKzY8kJSKyJV", "img":"public/img/advert/advert2.jpg"}, 8 | {"script": "https://s.click.taobao.com/t?e=m%3D2%26s%3DyJVT04f95dwcQipKwQzePCperVdZeJviK7Vc7tFgwiFRAdhuF14FMRBEihx9fnu7MMgx22UI05ZpkZoesg6H2DLkWy%2FWNDI6qDkzyuS4OqpRZq0jLDZK045N7u7NTPnpvgfyVVUAbkzCbAGjvJeFYhvzeiceWLrTM7kxpdONUAK2ZesAkYM2UrHfv3%2BBYcPW%2FknKiHyNnnwFqMlk%2BHscgsxly4mDws6agwasosWKSNIq0pojkFrdmA%3D%3D", "img": "public/img/advert/advert3.jpg"}, 9 | {"script": "https://s.click.taobao.com/t?e=m%3D2%26s%3DWBOlTdx8NOYcQipKwQzePCperVdZeJviK7Vc7tFgwiFRAdhuF14FMQ4UZ0fdGU398sviUM61dt1pkZoesg6H2DLkWy%2FWNDI6qDkzyuS4OqpRZq0jLDZK045N7u7NTPnpvgfyVVUAbkzCbAGjvJeFYhvzeiceWLrTM7kxpdONUALIHVwQNFS4sCT8IooNW8SzyELuT3V6aIyiZ%2BQMlGz6FQ%3D%3D", "img": "public/img/advert/advert4.jpg"}, 10 | {"script": "https://s.click.taobao.com/t?e=m%3D2%26s%3D01CA%2FOv7j1ocQipKwQzePCperVdZeJviK7Vc7tFgwiFRAdhuF14FMZVDjYODMa5D5x%2BIUlGKNpVpkZoesg6H2DLkWy%2FWNDI6qDkzyuS4OqpRZq0jLDZK045N7u7NTPnpvgfyVVUAbkzCbAGjvJeFYhvzeiceWLrTBmf7LSR66ajB2BnU%2FAw9MfB0z8qlrv%2BjxgxdTc00KD8%3D", "img": "public/img/advert/advert1.jpg"}, 11 | {"script": "https://s.click.taobao.com/t?e=m%3D2%26s%3DMylYQi2EJA8cQipKwQzePCperVdZeJviK7Vc7tFgwiFRAdhuF14FMaTontUilVOD8sviUM61dt1pkZoesg6H2DLkWy%2FWNDI6qDkzyuS4OqpRZq0jLDZK045N7u7NTPnpvgfyVVUAbkzCbAGjvJeFYhvzeiceWLrTM7kxpdONUAIFqMlk%2BHscgie8iDqaHto6xAa%2FwPGIEAmtCcqzniGwRKzY8kJSKyJV", "img":"public/img/advert/advert2.jpg"}, 12 | {"script": "https://s.click.taobao.com/t?e=m%3D2%26s%3DyJVT04f95dwcQipKwQzePCperVdZeJviK7Vc7tFgwiFRAdhuF14FMRBEihx9fnu7MMgx22UI05ZpkZoesg6H2DLkWy%2FWNDI6qDkzyuS4OqpRZq0jLDZK045N7u7NTPnpvgfyVVUAbkzCbAGjvJeFYhvzeiceWLrTM7kxpdONUAK2ZesAkYM2UrHfv3%2BBYcPW%2FknKiHyNnnwFqMlk%2BHscgsxly4mDws6agwasosWKSNIq0pojkFrdmA%3D%3D", "img": "public/img/advert/advert3.jpg"}, 13 | {"script": "https://s.click.taobao.com/t?e=m%3D2%26s%3DWBOlTdx8NOYcQipKwQzePCperVdZeJviK7Vc7tFgwiFRAdhuF14FMQ4UZ0fdGU398sviUM61dt1pkZoesg6H2DLkWy%2FWNDI6qDkzyuS4OqpRZq0jLDZK045N7u7NTPnpvgfyVVUAbkzCbAGjvJeFYhvzeiceWLrTM7kxpdONUALIHVwQNFS4sCT8IooNW8SzyELuT3V6aIyiZ%2BQMlGz6FQ%3D%3D", "img": "public/img/advert/advert4.jpg"}, 14 | {"script": "https://s.click.taobao.com/t?e=m%3D2%26s%3D01CA%2FOv7j1ocQipKwQzePCperVdZeJviK7Vc7tFgwiFRAdhuF14FMZVDjYODMa5D5x%2BIUlGKNpVpkZoesg6H2DLkWy%2FWNDI6qDkzyuS4OqpRZq0jLDZK045N7u7NTPnpvgfyVVUAbkzCbAGjvJeFYhvzeiceWLrTBmf7LSR66ajB2BnU%2FAw9MfB0z8qlrv%2BjxgxdTc00KD8%3D", "img": "public/img/advert/advert1.jpg"}, 15 | {"script": "https://s.click.taobao.com/t?e=m%3D2%26s%3DMylYQi2EJA8cQipKwQzePCperVdZeJviK7Vc7tFgwiFRAdhuF14FMaTontUilVOD8sviUM61dt1pkZoesg6H2DLkWy%2FWNDI6qDkzyuS4OqpRZq0jLDZK045N7u7NTPnpvgfyVVUAbkzCbAGjvJeFYhvzeiceWLrTM7kxpdONUAIFqMlk%2BHscgie8iDqaHto6xAa%2FwPGIEAmtCcqzniGwRKzY8kJSKyJV", "img":"public/img/advert/advert2.jpg"}, 16 | {"script": "https://s.click.taobao.com/t?e=m%3D2%26s%3DyJVT04f95dwcQipKwQzePCperVdZeJviK7Vc7tFgwiFRAdhuF14FMRBEihx9fnu7MMgx22UI05ZpkZoesg6H2DLkWy%2FWNDI6qDkzyuS4OqpRZq0jLDZK045N7u7NTPnpvgfyVVUAbkzCbAGjvJeFYhvzeiceWLrTM7kxpdONUAK2ZesAkYM2UrHfv3%2BBYcPW%2FknKiHyNnnwFqMlk%2BHscgsxly4mDws6agwasosWKSNIq0pojkFrdmA%3D%3D", "img": "public/img/advert/advert3.jpg"}, 17 | {"script": "https://s.click.taobao.com/t?e=m%3D2%26s%3DWBOlTdx8NOYcQipKwQzePCperVdZeJviK7Vc7tFgwiFRAdhuF14FMQ4UZ0fdGU398sviUM61dt1pkZoesg6H2DLkWy%2FWNDI6qDkzyuS4OqpRZq0jLDZK045N7u7NTPnpvgfyVVUAbkzCbAGjvJeFYhvzeiceWLrTM7kxpdONUALIHVwQNFS4sCT8IooNW8SzyELuT3V6aIyiZ%2BQMlGz6FQ%3D%3D", "img": "public/img/advert/advert4.jpg"}, 18 | ]; 19 | /*视频教学*/ 20 | //UserFilesName是标题 21 | //UserFilesServerName是显示图片 22 | //Action_url是跳转链接 23 | CampusInfo.VideoTeach=[ 24 | {"UserFilesName":"有思课堂-JavaScript第一讲变量循环函数及div","UserFilesServerName":"public/img/VideoTeach/VideoTeach1.png","Action_url":"https://v.qq.com/x/page/i0510ky3tjm.html"}, 25 | {"UserFilesName":"有思课堂-JavaScript第二讲判断循环调试基础知识","UserFilesServerName":"public/img/VideoTeach/VideoTeach2.png","Action_url":"https://v.qq.com/x/page/p0510lztld2.html"}, 26 | {"UserFilesName":"有思课堂-JavaScript第三讲 游戏布局","UserFilesServerName":"public/img/VideoTeach/VideoTeach3.png","Action_url":"https://v.qq.com/x/page/f05086f8xa6.html"}, 27 | {"UserFilesName":"有思课堂-JavaScript第四讲元素之间的关系","UserFilesServerName":null,"Action_url":"https://v.qq.com/x/page/p0508biafx2.html"}, 28 | {"UserFilesName":"有思课堂-JavaScript第五讲_双循环的讲解","UserFilesServerName":null,"Action_url":"https://v.qq.com/x/page/o0511smspoq.html"}, 29 | {"UserFilesName":"有思课堂-JavaScript第六讲 二维数组","UserFilesServerName":null,"Action_url":"https://v.qq.com/x/page/h05115m98xe.html"}, 30 | {"UserFilesName":"有思课堂-第八讲 错误调试以及添加人物","UserFilesServerName":null,"Action_url":"https://v.qq.com/x/page/x05149dlpke.html"}, 31 | {"UserFilesName":"有思课堂-JavaScript第九讲 键盘事件","UserFilesServerName":null,"Action_url":"https://v.qq.com/x/page/z0518f8nbf7.html"}, 32 | {"UserFilesName":"有思课堂-JavaScript第十讲人物与数组关系及行走","UserFilesServerName":null,"Action_url":"https://v.qq.com/x/page/x0518x0r465.html"}, 33 | {"UserFilesName":"有思课堂-JavaScript第十一讲 二维数组与调试","UserFilesServerName":null,"Action_url":"https://v.qq.com/x/page/t0521aro02e.html"}, 34 | {"UserFilesName":"有思课堂JavaScript第十二讲 代码格式及添加箱子","UserFilesServerName":null,"Action_url":"https://v.qq.com/x/page/d05214r4jcy.html"}, 35 | {"UserFilesName":"有思课堂-第十三讲 代码格式化及监视人物行走的坐标","UserFilesServerName":null,"Action_url":"https://v.qq.com/x/page/c05289f716s.html"}, 36 | {"UserFilesName":"有思课堂-第十四讲 人物向下行走及错误处理","UserFilesServerName":null,"Action_url":"https://v.qq.com/x/page/g0527q5r6kj.html"}, 37 | {"UserFilesName":"有思课堂-第十五讲 上下左右四个方向推动箱子 ","UserFilesServerName":null,"Action_url":"https://v.qq.com/x/page/v0531apqn4d.html"}, 38 | {"UserFilesName":"有思课堂-第十六讲 把箱子推到出口及函数的概念","UserFilesServerName":null,"Action_url":"https://v.qq.com/x/page/s0531begsm2.html"}, 39 | {"UserFilesName":"有思课堂-第十七讲 通关界面的制作及调试","UserFilesServerName":null,"Action_url":"https://v.qq.com/x/page/i0539kf03ws.html"}, 40 | {"UserFilesName":"有思课堂-第十八讲 下一关及重玩本关按钮制作","UserFilesServerName":null,"Action_url":"https://v.qq.com/x/page/n0539r6ju7h.html"}, 41 | {"UserFilesName":"有思课堂-第十九讲 三维数组,把游戏扩大到两关","UserFilesServerName":null,"Action_url":"https://v.qq.com/x/page/i0544jghc03.html"}, 42 | ]; 43 | /*程序教学*/ 44 | //UserFilesName是标题 45 | //UserFilesServerName是显示图片 46 | //Action_url是跳转链接 47 | CampusInfo.program=[ 48 | {"UserFilesName":"js字符串处理函数讲解","UserFilesServerName":"public/img/Code/字符串处理函数.jpg","Action_url":"http://api.1473.cn/uform/String/index.aspx"}, 49 | {"UserFilesName":"数字处理函数过程讲解","UserFilesServerName":"public/img/Code/数字处理函数.jpg","Action_url":"http://api.1473.cn/uform/Number/index.aspx"}, 50 | {"UserFilesName":"Array数组函数数据类型讲解","UserFilesServerName":"public/img/Code/Array数据类型.jpg","Action_url":"http://api.1473.cn/uform/Array/index.aspx"}, 51 | {"UserFilesName":"uform框架-Guid数据类型补全课程讲解","UserFilesServerName":null,"Action_url":"http://api.1473.cn/uform/guid.aspx"}, 52 | {"UserFilesName":"uform框架-Date数据类型","UserFilesServerName":null,"Action_url":"http://api.1473.cn/uform/Date/index.aspx"}, 53 | {"UserFilesName":"uform框架-json处理类","UserFilesServerName":null,"Action_url":"http://api.1473.cn/Uform/Json/index.aspx"}, 54 | {"UserFilesName":"uform框架-ajax类U.A","UserFilesServerName":null,"Action_url":"http://api.1473.cn/uform/6%E3%80%81ajax%E7%B1%BB_U.A.aspx"}, 55 | {"UserFilesName":"uform框架-跨域方法U.UF.CD","UserFilesServerName":null,"Action_url":"http://api.1473.cn/uform/7%E3%80%81%E8%B7%A8%E5%9F%9F%E6%96%B9%E6%B3%95_U.CD.aspx"}, 56 | {"UserFilesName":"客户端信息U.UF.CI解析","UserFilesServerName":null,"Action_url":"http://api.1473.cn/uform/8%E3%80%81%E5%AE%A2%E6%88%B7%E7%AB%AF%E4%BF%A1%E6%81%AF_U.CI.aspx"}, 57 | {"UserFilesName":"兼容函数列表讲解说明","UserFilesServerName":null,"Action_url":"http://api.1473.cn/uform/Compatible/index.aspx"}, 58 | {"UserFilesName":"预加载处理区域讲解说明","UserFilesServerName":null,"Action_url":"http://api.1473.cn/uform/DynamicLoad/index.aspx"}, 59 | {"UserFilesName":"Cookie缓存处理说明","UserFilesServerName":null,"Action_url":"http://api.1473.cn/uform/Cookie/index.aspx"}, 60 | {"UserFilesName":"uform框架-辅助函数U.Util讲解","UserFilesServerName":null,"Action_url":"http://api.1473.cn/uform/utility/11%E3%80%81%E8%BE%85%E5%8A%A9%E5%87%BD%E6%95%B0_U.Util.aspx"}, 61 | {"UserFilesName":"前进后退接口函数U.UF.N","UserFilesServerName":null,"Action_url":"http://api.1473.cn/uform/13%E3%80%81%E5%89%8D%E8%BF%9B%E5%90%8E%E9%80%80%E6%8E%A5%E5%8F%A3%E5%87%BD%E6%95%B0_U.AFB.aspx"}, 62 | {"UserFilesName":"UI界面控件简介与说明","UserFilesServerName":null,"Action_url":"http://api.1473.cn/uform/uformcontrols/index.aspx"}, 63 | {"UserFilesName":"Confirm窗体的调用U.UI.Confirm","UserFilesServerName":null,"Action_url":"http://api.1473.cn/uform/uformcontrols/ModalForm.aspx"}, 64 | {"UserFilesName":"图片控件U.UF.IMG","UserFilesServerName":null,"Action_url":"http://api.1473.cn/uform/pccontrols/image.aspx"}, 65 | {"UserFilesName":"图片控件U.MD.UI.Picture","UserFilesServerName":null,"Action_url":"http://api.1473.cn/uform/pccontrols/picture.aspx"}, 66 | {"UserFilesName":"手机端UI控件简介说明","UserFilesServerName":null,"Action_url":"http://api.1473.cn/uform/telephoecontrols/index.aspx"}, 67 | {"UserFilesName":"RadioList列表说明解析","UserFilesServerName":null,"Action_url":"http://api.1473.cn/uform/telephoecontrols/radiolist.aspx"}, 68 | {"UserFilesName":"UForm登录注册中文调用文档API","UserFilesServerName":null,"Action_url":"http://api.1473.cn/uform/application/1%E3%80%81UForm%E7%99%BB%E5%BD%95%E6%B3%A8%E5%86%8C%E4%B8%AD%E6%96%87%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3api.aspx"}, 69 | {"UserFilesName":"1473好友处理模块接口使用说明文档","UserFilesServerName":null,"Action_url":"http://api.1473.cn/uform/application/7%E3%80%81%E5%A5%BD%E5%8F%8B%E5%A4%84%E7%90%86%E6%A8%A1%E5%9D%97%E6%8E%A5%E5%8F%A3.aspx"}, 70 | {"UserFilesName":"office处理模块接口调用","UserFilesServerName":null,"Action_url":"http://api.1473.cn/uform/8%E3%80%81office%E5%A4%84%E7%90%86%E6%A8%A1%E5%9D%97%E6%8E%A5%E5%8F%A3%E8%B0%83%E7%94%A8.aspx"}, 71 | {"UserFilesName":"图片拖拽兼容ie8的方法","UserFilesServerName":null,"Action_url":"http://api.1473.cn/uform/other/ImageSelect.aspx"}, 72 | {"UserFilesName":"从编程框架看系统结构","UserFilesServerName":null,"Action_url":"http://api.1473.cn/uform/1%E3%80%81%E4%BB%8E%E7%BC%96%E7%A8%8B%E6%A1%86%E6%9E%B6%E7%9C%8B%E7%B3%BB%E7%BB%9F.aspx"}, 73 | {"UserFilesName":"安装Internet服务器(IIS)管理器","UserFilesServerName":null,"Action_url":"http://api.1473.cn/uform/ProjectConfiguration/2%E3%80%81%E5%AE%89%E8%A3%85Internet%E6%9C%8D%E5%8A%A1%E5%99%A8(IIS)%E7%AE%A1%E7%90%86%E5%99%A8.aspx"}, 74 | {"UserFilesName":"Cookie增删查改讲解说明","UserFilesServerName":null,"Action_url":"http://api.1473.cn/uform/12%E3%80%81Cookie.aspx"}, 75 | {"UserFilesName":"修改电脑用户为Administrator","UserFilesServerName":null,"Action_url":"http://api.1473.cn/uform/ProjectConfiguration/7%E3%80%81%E4%BF%AE%E6%94%B9%E7%94%B5%E8%84%91%E7%94%A8%E6%88%B7%E4%B8%BAAdministrator.aspx"}, 76 | {"UserFilesName":"从应用和系统看操作系统构成","UserFilesServerName":null,"Action_url":"http://api.1473.cn/uform/2%E3%80%81%E4%BB%8E%E5%BA%94%E7%94%A8%E5%92%8C%E7%B3%BB%E7%BB%9F%E7%9C%8B%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E6%9E%84%E6%88%90.aspx"}, 77 | {"UserFilesName":"理解整个系统需要额外掌握的知识","UserFilesServerName":null,"Action_url":"http://api.1473.cn/uform/4%E3%80%81%E7%90%86%E8%A7%A3%E6%95%B4%E4%B8%AA%E7%B3%BB%E7%BB%9F%E9%9C%80%E8%A6%81%E9%A2%9D%E5%A4%96%E6%8E%8C%E6%8F%A1%E7%9A%84%E7%9F%A5%E8%AF%86.aspx"} 78 | ]; 79 | /*产品教学*/ 80 | //UserFilesName是标题 81 | //UserFilesServerName是显示图片 82 | //Action_url是跳转链接 83 | CampusInfo.ProductData=[ 84 | {"UserFilesName":"Axure原型图策划解析","UserFilesServerName":"public/img/ProductData/Axure原型图策划.jpg","Action_url":"http://api.1473.cn/product/Learning/Prototypingplanning.aspx"}, 85 | {"UserFilesName":"UI界面设计图绘制说明","UserFilesServerName":"public/img/ProductData/UI设计图绘制.jpg","Action_url":"http://api.1473.cn/product/Learning/DrawingofUIdesigndiagram.aspx"}, 86 | {"UserFilesName":"使用AI绘制icon图标讲解","UserFilesServerName":"public/img/ProductData/AI制作绘制icon.jpg","Action_url":"http://api.1473.cn/product/Learning/AImakingAndDrawingicon.aspx"}, 87 | {"UserFilesName":"有思俱乐部美工部设计作品集汇总","UserFilesServerName":null,"Action_url":"http://api.1473.cn/product/Learning/DesignWorksset.aspx"}, 88 | {"UserFilesName":"Axure原型认识与制作讲解","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/cloud/VMware_cloud.aspx"}, 89 | {"UserFilesName":"界面UI美工设计速成说明","UserFilesServerName":null,"Action_url":"http://api.1473.cn/product/Courses/InterfaceAestheticDesignSpeed.aspx"}, 90 | {"UserFilesName":"PS基础工具使用讲解说明","UserFilesServerName":null,"Action_url":"http://api.1473.cn/product/Courses/PSBasic.aspx"}, 91 | {"UserFilesName":"淘宝首页美工界面临摹(一)","UserFilesServerName":null,"Action_url":"http://api.1473.cn/product/Courses/WebCopyTB1.aspx"}, 92 | {"UserFilesName":"淘宝首页美工界面临摹(二)","UserFilesServerName":null,"Action_url":"http://api.1473.cn/product/Courses/WebCopyTB2.aspx"}, 93 | {"UserFilesName":"网页配色速成讲解文档","UserFilesServerName":null,"Action_url":"http://api.1473.cn/product/Courses/WebPageColor.aspx"}, 94 | {"UserFilesName":"临摹美工界面-移动端(一)","UserFilesServerName":null,"Action_url":"http://api.1473.cn/product/Courses/MobileCopyWeb1.aspx"}, 95 | {"UserFilesName":"临摹美工界面-移动端(二)","UserFilesServerName":null,"Action_url":"http://api.1473.cn/product/Courses/MobileCopyWeb2.aspx"}, 96 | {"UserFilesName":"有思俱乐部产品Axure设计与详解","UserFilesServerName":null,"Action_url":"http://api.1473.cn/product/Courses/ProductAxureDesignAndDetailedSolution.aspx"}, 97 | {"UserFilesName":"美工运用AI临摹icon","UserFilesServerName":null,"Action_url":"http://api.1473.cn/product/Courses/AICopyIcon.aspx"}, 98 | {"UserFilesName":"产品交互设计能力讲解","UserFilesServerName":null,"Action_url":"http://api.1473.cn/product/Courses/ProductInteractionDesign.aspx"}, 99 | {"UserFilesName":"产品经理能力模型解析","UserFilesServerName":null,"Action_url":"http://api.1473.cn/product/Courses/ProductManagerCapabilityModel.aspx"}, 100 | {"UserFilesName":"临摹网页界面讲解说明","UserFilesServerName":null,"Action_url":"http://api.1473.cn/product/Courses/CopyWeb.aspx"}, 101 | {"UserFilesName":"产品经理竞品分析文档","UserFilesServerName":null,"Action_url":"http://api.1473.cn/product/Courses/AnalysisOfProductCompetition.aspx"}, 102 | {"UserFilesName":"HTML基础课程教学(一)","UserFilesServerName":null,"Action_url":"http://api.1473.cn/product/Courses/WebBasic1.aspx"}, 103 | {"UserFilesName":"产品用户手册范本编写","UserFilesServerName":null,"Action_url":"http://api.1473.cn/product/Courses/UserProduct.aspx"}, 104 | {"UserFilesName":"HTML基础课程教学(二)","UserFilesServerName":null,"Action_url":"http://api.1473.cn/product/Courses/WebBasic2.aspx"}, 105 | {"UserFilesName":"产品项目计划书编写要点及说明","UserFilesServerName":null,"Action_url":"http://api.1473.cn/product/Courses/ProductProjectPlan.aspx"}, 106 | {"UserFilesName":"AE动画制作UI界面解析说明","UserFilesServerName":null,"Action_url":"http://api.1473.cn/product/Courses/AECartoon.aspx"}, 107 | {"UserFilesName":"数据解析优化产品讲解","UserFilesServerName":null,"Action_url":"http://api.1473.cn/product/Courses/DataOptimizationProducts.aspx"}, 108 | {"UserFilesName":"项目计划书(含目的、意义)","UserFilesServerName":null,"Action_url":"http://api.1473.cn/product/Learning/ProjectpLanningpaper.aspx"}, 109 | {"UserFilesName":"测试用例文档制作说明","UserFilesServerName":null,"Action_url":"http://api.1473.cn/product/Learning/TestcaseProduction.aspx"}, 110 | {"UserFilesName":"用户使用说明书编写规范","UserFilesServerName":null,"Action_url":"http://api.1473.cn/product/Learning/UsersInstructions.aspx"}, 111 | {"UserFilesName":"利用html制作网页说明讲解","UserFilesServerName":null,"Action_url":"http://api.1473.cn/product/Learning/HtmlProduction.aspx"}, 112 | {"UserFilesName":"网站制作技巧全面讲解","UserFilesServerName":null,"Action_url":"http://api.1473.cn/product/Learning/WebmakingAndDrawing.aspx"}, 113 | {"UserFilesName":"Axure网站原型策划说明","UserFilesServerName":null,"Action_url":"http://api.1473.cn/product/Learning/WebsitePrototype.aspx"}, 114 | {"UserFilesName":"美工海报宣传制作规范说明","UserFilesServerName":null,"Action_url":"http://api.1473.cn/product/Learning/PosterPublicity.aspx"} 115 | ]; 116 | /*网络教学*/ 117 | //UserFilesName是标题 118 | //UserFilesServerName是显示图片 119 | //Action_url是跳转链接 120 | CampusInfo.NetWorkData=[ 121 | {"UserFilesName":"制作磁盘阵列课程说明解析","UserFilesServerName":"public/img/NetWorkData/制作磁盘阵列.jpg","Action_url":"http://api.1473.cn/network/raid/index.aspx"}, 122 | { "UserFilesName":"VMware esxi安装步骤说明", "UserFilesServerName": "public/img/NetWorkData/VMware-esxi安装.jpg", "Action_url": "http://api.1473.cn/network/esxi/esxi_install.aspx" }, 123 | {"UserFilesName":"VMware esxi配置步骤说明","UserFilesServerName":"public/img/NetWorkData/VMware-esxi配置.jpg","Action_url":"http://api.1473.cn/network/esxi/esxi_config.aspx"}, 124 | {"UserFilesName":"window上登录VMware esxi说明解析","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/esxi/login_esxi.aspx"}, 125 | {"UserFilesName":"华为虚拟化系统安装与配置","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/install_OS/install_huawei.aspx"}, 126 | {"UserFilesName":"Ubuntu操作系统安装教程","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/UbuntuInstall/index.aspx"}, 127 | {"UserFilesName":"PHP集成开发环境安装说明","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/php/index.aspx"}, 128 | {"UserFilesName":"JAVA环境配置步骤说明","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/java/index.aspx"}, 129 | {"UserFilesName":"安装mysql数据库说明解析","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/mysql/index.aspx"}, 130 | {"UserFilesName":"mongodb数据库配置说明","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/mongodb/index.aspx"}, 131 | {"UserFilesName":"在Ubuntu里搭建DNS讲解","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/DNS/index.aspx"}, 132 | {"UserFilesName":"安装DHCP网络协议服务讲解","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/DHCP/index.aspx"}, 133 | {"UserFilesName":"window上安装nginx反向代理服务讲解","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/nginx/index.aspx"}, 134 | {"UserFilesName":"安装moosefs分布式服务讲解","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/moosefs/index.aspx"}, 135 | {"UserFilesName":"mysql-cluster配置说明文","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/mysql/cluster.aspx"}, 136 | {"UserFilesName":"如何配置dmz安装说明讲解","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/dmz/dmz.aspx"}, 137 | {"UserFilesName":"rsync传输服务配置同步","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/rsync/rsync.aspx"}, 138 | {"UserFilesName":"创建虚拟机并安装操作系统","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/ftp/ftp.aspx"}, 139 | {"UserFilesName":"如何配置FTP协议服务说明","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/ftp/ftp.aspx"}, 140 | {"UserFilesName":"如何配置SVN服务解析说明","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/svn/svn.aspx"}, 141 | {"UserFilesName":"DHCP主机配置协议安装说明","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/windows_config/DHCP.aspx"}, 142 | {"UserFilesName":"window上DNS域名系统安装步骤讲解","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/windows_config/DNS.aspx"}, 143 | {"UserFilesName":"配置FTP服务步骤说明文档","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/ftp/ftp_install.aspx"}, 144 | {"UserFilesName":"配置IIS服务安装说明文档","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/iis/iis.aspx"}, 145 | {"UserFilesName":"配置IIS(Windows7)说明","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/iis/iis_windows7.aspx"}, 146 | {"UserFilesName":"路由器交换基础解析说明","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/router_switch/switch.aspx"}, 147 | {"UserFilesName":"路由器路由基础解析说明","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/router_switch/router.aspx"}, 148 | {"UserFilesName":"VMware桌面云配置教学","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/cloud/VMware_cloud.aspx"}, 149 | {"UserFilesName":"华为云桌面配置教学说明","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/cloud/huawei_cloud.aspx"}, 150 | {"UserFilesName":"网络部门网络总图查看","UserFilesServerName":null,"Action_url":"http://api.1473.cn/network/cloud/VMware_cloud.aspx"} 151 | ]; 152 | /*毕业季数据*/ 153 | //UserFilesName是标题 154 | //UserFilesServerName是显示图片 155 | //Action_url是跳转链接 156 | CampusInfo.graduationData=[ 157 | {"UserFilesName":"设计系12营销G5毕业照2","UserFilesServerName":"http://fs.1473.cn/af594976-b0fd-47e9-b65c-89b591b577d8.jpg","Action_url":"http://fs.1473.cn/af594976-b0fd-47e9-b65c-89b591b577d8.jpg"}, 158 | {"UserFilesName":"设计系12营销G5毕业照","UserFilesServerName":"http://fs.1473.cn/8db6512f-8e99-4d43-aabe-c13027e91465.jpg","Action_url":"http://fs.1473.cn/8db6512f-8e99-4d43-aabe-c13027e91465.jpg"}, 159 | {"UserFilesName":"机电系14光电子G3毕业照3","UserFilesServerName":"http://fs.1473.cn/fc0f29dc-9933-42b6-86aa-1cba7c66c668.jpg","Action_url":"http://fs.1473.cn/fc0f29dc-9933-42b6-86aa-1cba7c66c668.jpg"}, 160 | {"UserFilesName":"深圳技师学院机电系14光电子G3毕业照2","UserFilesServerName":"http://fs.1473.cn/5e89e6bd-46b6-447f-811f-3ca4568546a2.jpg","Action_url":"http://fs.1473.cn/5e89e6bd-46b6-447f-811f-3ca4568546a2.jpg"}, 161 | {"UserFilesName":"机电系14光电子G3毕业照","UserFilesServerName":"http://fs.1473.cn/81ac6766-2ebd-431e-9020-ad7b1f17767d.jpg","Action_url":"http://fs.1473.cn/81ac6766-2ebd-431e-9020-ad7b1f17767d.jpg"}, 162 | {"UserFilesName":"电信系12电子J4毕业照","UserFilesServerName":"http://fs.1473.cn/30bcd316-3b25-4850-b68c-0b158d9d2628.jpg","Action_url":"http://fs.1473.cn/30bcd316-3b25-4850-b68c-0b158d9d2628.jpg"}, 163 | {"UserFilesName":"电信系11电子商务G5毕业照","UserFilesServerName":"http://fs.1473.cn/9999238c-d1cd-4275-89a8-042befceed8e.jpg","Action_url":"http://fs.1473.cn/9999238c-d1cd-4275-89a8-042befceed8e.jpg"}, 164 | {"UserFilesName":"神秘系未知班毕业照","UserFilesServerName":"http://fs.1473.cn/2f769382-ecd1-4661-b6c8-5077d6f23955.jpg","Action_url":"http://fs.1473.cn/2f769382-ecd1-4661-b6c8-5077d6f23955.jpg"}, 165 | {"UserFilesName":"神秘系未知班毕业照(2)","UserFilesServerName":"http://fs.1473.cn/7fd027cf-1b11-48f2-bbb3-5825a9c7b0b8.jpg","Action_url":"http://fs.1473.cn/7fd027cf-1b11-48f2-bbb3-5825a9c7b0b8.jpg"}, 166 | {"UserFilesName":"设计系13高起营销毕业照","UserFilesServerName":"http://fs.1473.cn/16d44639-fef5-484b-aee9-18fa7d603f06.jpg","Action_url":"http://fs.1473.cn/16d44639-fef5-484b-aee9-18fa7d603f06.jpg"}, 167 | {"UserFilesName":"设计系13高起营销毕业照","UserFilesServerName":"http://fs.1473.cn/517c9c1d-63b4-4c8d-bcba-7a76058c13ba.jpg","Action_url":"http://fs.1473.cn/517c9c1d-63b4-4c8d-bcba-7a76058c13ba.jpg"}, 168 | {"UserFilesName":"设计13高起营销毕业照","UserFilesServerName":"http://fs.1473.cn/6ad8a083-a0ec-4e0b-b0c4-a791227c1497.jpg","Action_url":"http://fs.1473.cn/6ad8a083-a0ec-4e0b-b0c4-a791227c1497.jpg"}, 169 | {"UserFilesName":"深圳技师学院汽车系12汽修G5毕业照","UserFilesServerName":"http://fs.1473.cn/9ea937ee-c294-42f5-9dc3-8d7c6707971f.jpg","Action_url":"http://fs.1473.cn/9ea937ee-c294-42f5-9dc3-8d7c6707971f.jpg"}, 170 | {"UserFilesName":"汽车系12汽修G5毕业照","UserFilesServerName":"http://fs.1473.cn/855b8343-05d9-4213-9486-f790977ece84.jpg","Action_url":"http://fs.1473.cn/855b8343-05d9-4213-9486-f790977ece84.jpg"}, 171 | {"UserFilesName":"生物系11生物毕业照","UserFilesServerName":"http://fs.1473.cn/831356f9-5737-4007-83b5-626a332f3984.jpg","Action_url":"http://fs.1473.cn/831356f9-5737-4007-83b5-626a332f3984.jpg"}, 172 | {"UserFilesName":"生物系11生物G5毕业照","UserFilesServerName":"http://fs.1473.cn/d057c910-8bc1-4ffa-a9c5-4b2abda695e8.jpg","Action_url":"http://fs.1473.cn/d057c910-8bc1-4ffa-a9c5-4b2abda695e8.jpg"}, 173 | {"UserFilesName":"生物系11生物G5毕业证","UserFilesServerName":"http://fs.1473.cn/a69a1072-3ac8-4d24-a838-62c01e308e79.jpg","Action_url":"http://fs.1473.cn/a69a1072-3ac8-4d24-a838-62c01e308e79.jpg"}, 174 | {"UserFilesName":"珠宝系10首饰G5毕业照","UserFilesServerName":"http://fs.1473.cn/08ebaaa0-83e0-4297-af40-16fb9356992c.jpg","Action_url":"http://fs.1473.cn/08ebaaa0-83e0-4297-af40-16fb9356992c.jpg"}, 175 | {"UserFilesName":"电信系11电商大合照","UserFilesServerName":"http://fs.1473.cn/9c3d8ed9-2b38-4e3c-bc7f-786b8ebe5cc4.jpg","Action_url":"http://fs.1473.cn/9c3d8ed9-2b38-4e3c-bc7f-786b8ebe5cc4.jpg"}, 176 | {"UserFilesName":"电信系11电商G5毕业证","UserFilesServerName":"http://fs.1473.cn/0398407d-fcf6-48ef-8d93-bf5105079d97.jpg","Action_url":"http://fs.1473.cn/0398407d-fcf6-48ef-8d93-bf5105079d97.jpg"}, 177 | {"UserFilesName":"电信系11电商G5毕业证","UserFilesServerName":"http://fs.1473.cn/ccbfb021-222c-4eb5-9200-beb3b3b189cc.jpg","Action_url":"http://fs.1473.cn/ccbfb021-222c-4eb5-9200-beb3b3b189cc.jpg"}, 178 | {"UserFilesName":"深圳技师学院电信系11软件G5毕业照","UserFilesServerName":"http://fs.1473.cn/3678b7c6-4cc7-4cba-af52-4837a0d53774.jpg","Action_url":"http://fs.1473.cn/3678b7c6-4cc7-4cba-af52-4837a0d53774.jpg"}, 179 | {"UserFilesName":"电信系11软件G5毕业照","UserFilesServerName":"http://fs.1473.cn/6aeea1fa-d9f7-443e-ba04-1f13b740c1d4.jpg","Action_url":"http://fs.1473.cn/6aeea1fa-d9f7-443e-ba04-1f13b740c1d4.jpg"}, 180 | {"UserFilesName":"电信系11软件G5毕业照","UserFilesServerName":"http://fs.1473.cn/fb708b96-db9c-4b3c-902d-f1f12e1aa789.jpg","Action_url":"http://fs.1473.cn/fb708b96-db9c-4b3c-902d-f1f12e1aa789.jpg"}, 181 | {"UserFilesName":"电信系11软件G5毕业照","UserFilesServerName":"http://fs.1473.cn/7959d613-e9f2-4910-90f2-e14cced72dce.jpg","Action_url":"http://fs.1473.cn/7959d613-e9f2-4910-90f2-e14cced72dce.jpg"}, 182 | {"UserFilesName":"电信系11软件G5毕业照","UserFilesServerName":"http://fs.1473.cn/00acd02c-b16f-467d-9a5f-1461cd425b2c.jpg","Action_url":"http://fs.1473.cn/00acd02c-b16f-467d-9a5f-1461cd425b2c.jpg"}, 183 | {"UserFilesName":"电信系11软件G5毕业照","UserFilesServerName":"http://fs.1473.cn/7444df51-8620-432c-a126-9e52ae5557b6.jpg","Action_url":"http://fs.1473.cn/7444df51-8620-432c-a126-9e52ae5557b6.jpg"}, 184 | {"UserFilesName":"电信系11软件G5毕业照","UserFilesServerName":"http://fs.1473.cn/e0f281b3-c79e-4259-91cb-98dd670d8808.jpg","Action_url":"http://fs.1473.cn/e0f281b3-c79e-4259-91cb-98dd670d8808.jpg"}, 185 | {"UserFilesName":"电信系11软件G5毕业照","UserFilesServerName":"http://fs.1473.cn/53b581b0-0a09-4426-a02e-cb6935ef3d67.jpg","Action_url":"http://fs.1473.cn/53b581b0-0a09-4426-a02e-cb6935ef3d67.jpg"}, 186 | {"UserFilesName":"电信系11软件G5毕业照","UserFilesServerName":"http://fs.1473.cn/d55c43ba-32b9-4a91-a14a-94745f4c10a1.jpg","Action_url":"http://fs.1473.cn/d55c43ba-32b9-4a91-a14a-94745f4c10a1.jpg"}, 187 | {"UserFilesName":"电信系11软件G5毕业照","UserFilesServerName":"http://fs.1473.cn/3678b7c6-4cc7-4cba-af52-4837a0d53774.jpg","Action_url":"http://fs.1473.cn/3678b7c6-4cc7-4cba-af52-4837a0d53774.jpg"}, 188 | {"UserFilesName":"电信系11软件G5毕业照","UserFilesServerName":"http://fs.1473.cn/9b8d7654-ef5a-4b5d-94c7-5dd75ead6ff2.jpg","Action_url":"http://fs.1473.cn/9b8d7654-ef5a-4b5d-94c7-5dd75ead6ff2.jpg"}, 189 | {"UserFilesName":"电信系11软件G5毕业照","UserFilesServerName":"http://fs.1473.cn/67a96c9c-08b1-4af7-8d35-2465eb7d9dd2.jpg","Action_url":"http://fs.1473.cn/67a96c9c-08b1-4af7-8d35-2465eb7d9dd2.jpg"}, 190 | {"UserFilesName":"电信系11软件G5毕业照","UserFilesServerName":"http://fs.1473.cn/66480f98-1940-488b-9f0e-996f640b084e.jpg","Action_url":"http://fs.1473.cn/66480f98-1940-488b-9f0e-996f640b084e.jpg"} 191 | ]; 192 | /*导航数组*/ 193 | //name是导航名字 194 | //tag是导航标签 195 | //dataLength是中间数据板块有多少条数据4或者8 196 | //resource是数据资源,外网填写url,存储过程填写参数['GetFileByid','1','2','3'],本地填写上面的数组名称CampusInfo.graduationData 197 | CampusInfo.NavData = [ 198 | {"name": "要闻", "tag": "news", "dataLength": 4, "resource": "http://is.snssdk.com/api/news/feed/v51/?category=news_society&"}, 199 | {"name": "视频教学", "tag": "video-teaching", "dataLength": 4, "resource": CampusInfo.VideoTeach}, 200 | {"name": "毕业季", "tag": "graduation", "dataLength": 8, "resource": CampusInfo.graduationData}, 201 | {"name": "程序教学", "tag": "program-teaching","dataLength": 8, "resource": CampusInfo.program}, 202 | {"name": "产品教学", "tag": "product-teaching","dataLength": 8, "resource": CampusInfo.ProductData}, 203 | {"name": "网络教学", "tag": "network-teaching", "dataLength": 8, "resource": CampusInfo.NetWorkData} 204 | ]; 205 | /*过滤数组*/ 206 | /*将除了导航数组、广告数组以外的数组的名称都添加到这里面,如产品的数组 CampusInfo.ProductData 就添加为CampusInfo.ProductData, */ 207 | CampusInfo.FliterData=[ 208 | CampusInfo.VideoTeach,CampusInfo.program,CampusInfo.ProductData,CampusInfo.NetWorkData,CampusInfo.graduationData 209 | ]; -------------------------------------------------------------------------------- /public/js/CampusInfo.js: -------------------------------------------------------------------------------- 1 | Namespace.register('CampusInfo'); 2 | function JsonParse (data){ 3 | if (typeof data !== 'string' || !data) { 4 | return null 5 | } 6 | return eval('(' + data.replace(/^\s+/, '').replace(/\s+$/, '') + ')') 7 | }; 8 | function OptionsInit(options,defaultOptions) { 9 | let opts = {}; 10 | let key; 11 | for (key in defaultOptions) { 12 | if (typeof options[key] === 'undefined') { 13 | opts[key] = defaultOptions[key] 14 | } else { 15 | opts[key] = options[key] 16 | } 17 | } 18 | return opts 19 | } 20 | function Ajax(options) { 21 | let ajaxSettings = { 22 | url: '', 23 | type: 'POST', 24 | dataType: 'json', 25 | async: true, 26 | cache: true, 27 | data: null, 28 | contentType: 'application/x-www-form-urlencoded', 29 | success: null, 30 | error: null, 31 | complete: null, 32 | processData:true, 33 | progress:false, 34 | accepts: { 35 | text: 'text/plain', 36 | html: 'text/html', 37 | xml: 'application/xml, text/xml', 38 | json: 'application/json, text/javascript' 39 | }, 40 | header:null, 41 | param:null, 42 | withCredentials: false 43 | }; 44 | let opts = OptionsInit(options,ajaxSettings); 45 | let param = function (obj) { 46 | let s = []; 47 | for (let key in obj) { 48 | s.push(encodeURIComponent(key) + '=' + encodeURIComponent(obj[key])) 49 | } 50 | return s.join('&'); 51 | }; 52 | let addToQueryString = function (url, params) { 53 | return url + (url.indexOf('?') > -1 ? '&' : '?') + param(params); 54 | }; 55 | let xhr = new XMLHttpRequest(); 56 | let url = opts.url; 57 | let sendData = opts.data; 58 | let readyStateChange = function () { 59 | let status = xhr.status; 60 | let data; 61 | if (xhr.readyState !== 4) { 62 | return 63 | } 64 | if (status >= 200 && status < 300 || status === 304) { 65 | if (opts.dataType === 'xml') { 66 | data = xhr.responseXML 67 | } else { 68 | data = xhr.responseText; 69 | if (opts.dataType === 'json') { 70 | data = JsonParse(data); 71 | } 72 | } 73 | if (typeof(opts.success)==='function') { 74 | opts.success.call(opts, data, status, xhr); 75 | } 76 | } 77 | else { 78 | if (typeof(opts.error)==='function') { 79 | opts.error.call(opts, xhr, status) 80 | } 81 | } 82 | if (typeof(opts.complete)==='function') { 83 | opts.complete.call(opts, xhr, status) 84 | } 85 | }; 86 | if(opts.param) { 87 | url = addToQueryString(url, opts.param); 88 | } 89 | if (!opts.cache) { 90 | url = addToQueryString(url, {noAjaxCache: (new Date()).getTime()}) 91 | } 92 | if ((opts.type === 'GET'||opts.type === 'get')&&sendData&&opts.processData) { 93 | url = addToQueryString(url, sendData); 94 | sendData = null 95 | } 96 | xhr.open(opts.type, url, opts.async); 97 | if ((opts.type === 'POST'||opts.type === 'post')&&sendData&&opts.processData) { 98 | sendData = param(sendData); 99 | xhr.setRequestHeader('Content-type', opts.contentType); 100 | } 101 | for(let i in opts.header){ 102 | xhr.setRequestHeader(i, opts.header[i]); 103 | } 104 | if(opts.progress) { 105 | xhr.upload.addEventListener("progress", opts.progress, false); 106 | } 107 | if (opts.dataType && opts.accepts[opts.dataType]) { 108 | xhr.setRequestHeader('Accept', opts.accepts[opts.dataType]) 109 | } 110 | xhr.withCredentials = opts.withCredentials; 111 | if (opts.async) { 112 | xhr.onreadystatechange = readyStateChange; 113 | xhr.send(sendData) 114 | }else { 115 | console.warn(opts.url+' 使用了同步请求,该请求将影响性能,不建议使用'); 116 | xhr.send(sendData); 117 | readyStateChange() 118 | } 119 | return xhr 120 | }; 121 | const {ipcRenderer} = require('electron'); 122 | let MainWindow=require('electron').remote.getCurrentWindow(); 123 | CampusInfo.LoadAdvert = function () { 124 | for (var i = 0; i < CampusInfo.Advert.length; i++) { 125 | var a=$$("img", { 126 | "draggable":false, 127 | "src": CampusInfo.AdvertData[i].img 128 | }, CampusInfo.Advert[i]); 129 | a.href=CampusInfo.AdvertData[i].script; 130 | a.onclick=function () { 131 | CampusInfo.OpenWeb(this.href) 132 | } 133 | } 134 | };//加载广告 135 | CampusInfo.OpenWeb=function(url){ 136 | ipcRenderer.send('open-browers',url); 137 | };//打开网页 138 | CampusInfo.LoadData = function (navMain) { 139 | var data = navMain.resource;//取出数组里定义好的传参 140 | var Tag = navMain.tag;//查看是什么标签 141 | var LeftArea = navMain.Left;//左侧内容容器 142 | var CenterArea = navMain.Center;//中间内容容器 143 | var ContentLength = navMain.dataLength;//中间内容有多少个 144 | var LeftContentArr = [];//记录左侧数据 145 | var CenterTitleArr = [];//记录特殊的蓝色标题数据 146 | var CenterContentArr = [];//记录输出内容 147 | CenterContentArr[0] = [];//三个数组分别用来记录三块内容,内容长度为8或者4 148 | CenterContentArr[1] = []; 149 | CenterContentArr[2] = []; 150 | if (typeof data === 'string') { 151 | CampusInfo.NewsData = []; 152 | CampusInfo.LoadNews = function () { 153 | var url = data + "iid=" + CampusInfo.randomNum(10) + "&device_id=" + CampusInfo.randomNum(11); 154 | Ajax({ 155 | url:url, 156 | type:'GET', 157 | success:function(rs){ 158 | rs = rs.data; 159 | for (var i = 0; i < rs.length; i++) { 160 | var list = JSON.parse(rs[i].content); 161 | var arr = []; 162 | var falg = true; 163 | CampusInfo.NewsData.forEach(function (value) { 164 | if (value.UserFilesName === list.title) { 165 | falg = false; 166 | return false; 167 | } 168 | }); 169 | if (falg && list.image_list&&list.title.length>15) { 170 | arr.UserFilesName = list.title; 171 | arr.UserFilesServerName = list.image_list[0].url; 172 | arr.Action_url = list.url; 173 | CampusInfo.NewsData.push(arr); 174 | } 175 | } 176 | if (CampusInfo.NewsData.length < 19) { 177 | CampusInfo.LoadNews(); 178 | } else { 179 | CampusInfo.DealData(ContentLength, LeftContentArr, CenterTitleArr, CenterContentArr, CampusInfo.NewsData);//处理数据 180 | CampusInfo.PrintDataLocal(LeftContentArr, CenterTitleArr, CenterContentArr, LeftArea, CenterArea, Tag);//打印数据(本地数据) 181 | CampusInfo.Loading.remove();//移除loading 182 | CampusInfo.AutoSlider();//开始自动切换 183 | CampusInfo.Bind();//绑定事件 184 | } 185 | } 186 | }) 187 | }; 188 | CampusInfo.LoadNews(); 189 | }else if(typeof data === 'object'&&CampusInfo.Fliter(data)) { 190 | U.A.Request(US.ADMINAUTH, (data), function (rs) { 191 | rs = rs.value; 192 | CampusInfo.DealData(ContentLength,LeftContentArr,CenterTitleArr,CenterContentArr,rs);//处理数据 193 | CampusInfo.PrintData(LeftContentArr,CenterTitleArr,CenterContentArr,LeftArea,CenterArea,Tag)//打印数据(获取的数据) 194 | }); 195 | //注释的这里是有用的 是请求返回数据的操作 196 | }else{ 197 | CampusInfo.DealData(ContentLength,LeftContentArr,CenterTitleArr,CenterContentArr,data); 198 | CampusInfo.PrintDataLocal(LeftContentArr,CenterTitleArr,CenterContentArr,LeftArea,CenterArea,Tag) 199 | } 200 | };//加载数据 201 | CampusInfo.Fliter=function (data) { 202 | for(var i=0;i 3 && i < 8) { 219 | CenterContentArr[0].push(rs[i]); 220 | } 221 | if (i > 8 && i < 13) { 222 | CenterContentArr[1].push(rs[i]); 223 | } 224 | if (i > 13 && i < 18) { 225 | CenterContentArr[2].push(rs[i]); 226 | } 227 | } else { 228 | if (i === 3 || i === 12 || i === 21) { 229 | CenterTitleArr.push(rs[i]); 230 | } 231 | if (i > 3 && i < 12) { 232 | CenterContentArr[0].push(rs[i]); 233 | } 234 | if (i > 12 && i < 21) { 235 | CenterContentArr[1].push(rs[i]); 236 | } 237 | if (i > 21 && i < 30) { 238 | CenterContentArr[2].push(rs[i]); 239 | } 240 | } 241 | } 242 | } 243 | }; 244 | CampusInfo.PrintDataLocal=function (LeftContentArr,CenterTitleArr,CenterContentArr,LeftArea,CenterArea,Tag) {/*左侧内容数组,中间标题数组,中间内容数组,左侧内容区域,中间内容区域,在CampusInfo.NavData定义的标签名*/ 245 | for (var j = 0; j < CenterTitleArr.length; j++) { 246 | CenterArea[j].TitleArea.innerHTML = CenterTitleArr[j].UserFilesName; 247 | CenterArea[j].TitleArea.href = CenterTitleArr[j].Action_url; 248 | CenterArea[j].TitleArea.onclick = function () { 249 | CampusInfo.OpenWeb(this.href) 250 | }; 251 | for (var k = 0; k < CenterContentArr[j].length; k++) { 252 | CenterArea[j].ContentArea[k].innerHTML = CenterContentArr[j][k].UserFilesName; 253 | CenterArea[j].ContentArea[k].href = CenterContentArr[j][k].Action_url; 254 | CenterArea[j].ContentArea[k].onclick = function () { 255 | CampusInfo.OpenWeb(this.href) 256 | }; 257 | } 258 | } 259 | for (var kk = 0; kk < LeftContentArr.length; kk++) { 260 | LeftArea[kk].ImgArea.src = LeftContentArr[kk].UserFilesServerName; 261 | LeftArea[kk].TitleArea.innerHTML = LeftContentArr[kk].UserFilesName; 262 | LeftArea[kk].ImgArea.href = LeftContentArr[kk].Action_url; 263 | LeftArea[kk].ImgArea.onclick = function () { 264 | CampusInfo.OpenWeb(this.href) 265 | } 266 | } 267 | };//打印本地数据 268 | CampusInfo.PrintData=function (LeftContentArr,CenterTitleArr,CenterContentArr,LeftArea,CenterArea,Tag) {/*左侧内容数组,中间标题数组,中间内容数组,左侧内容区域,中间内容区域,在CampusInfo.NavData定义的标签名*/ 269 | for (var j = 0; j < CenterTitleArr.length; j++) { 270 | CenterArea[j].TitleArea.innerHTML = CenterTitleArr[j].UserFilesName; 271 | if (Tag === 'graduation') { 272 | CenterArea[j].TitleArea.href = CampusInfo.ResourceUrl + CenterTitleArr[j].UserFilesServerName; 273 | } else { 274 | CenterArea[j].TitleArea.href = CenterTitleArr[j].Action_url; 275 | } 276 | CenterArea[j].TitleArea.onclick = function () { 277 | CampusInfo.OpenWeb(this.href) 278 | }; 279 | for (var k = 0; k < CenterContentArr[j].length; k++) { 280 | CenterArea[j].ContentArea[k].innerHTML = CenterContentArr[j][k].UserFilesName; 281 | if (Tag === 'graduation') { 282 | CenterArea[j].ContentArea[k].href = CampusInfo.ResourceUrl + CenterContentArr[j][k].UserFilesServerName; 283 | } else { 284 | CenterArea[j].ContentArea[k].href = CenterContentArr[j][k].Action_url; 285 | } 286 | CenterArea[j].ContentArea[k].onclick = function () { 287 | CampusInfo.OpenWeb(this.href) 288 | }; 289 | } 290 | } 291 | for (var kk = 0; kk < LeftContentArr.length; kk++) { 292 | LeftArea[kk].ImgArea.src = CampusInfo.ResourceUrl + LeftContentArr[kk].UserFilesServerName;//将图片地址添加进img标签 293 | LeftArea[kk].TitleArea.innerHTML = LeftContentArr[kk].UserFilesName;//将数据标题写入标题容器 294 | if (Tag === 'graduation') {//如果是毕业季数据 295 | LeftArea[kk].ImgArea.href = CampusInfo.ResourceUrl + LeftContentArr[kk].UserFilesServerName;//在图片前加上资源地址 296 | } else { 297 | LeftArea[kk].ImgArea.href = LeftContentArr[kk].Action_url;//否则直接放图片地址,这个href是用来点开链接的 298 | } 299 | LeftArea[kk].ImgArea.onclick = function () { 300 | CampusInfo.OpenWeb(this.href)//打开广告链接 301 | } 302 | } 303 | };//打印网络数据 304 | CampusInfo.randomNum = function (n) { 305 | var t = ''; 306 | for (var i = 0; i < n; i++) { 307 | t += Math.floor(Math.random() * 10); 308 | } 309 | return t;//返回一个n长度的随机数 310 | };//随机数传参为随机数的长度 311 | CampusInfo.Bind = function () { 312 | CampusInfo.Nav[0].className = 'CampusInfoHeadNavActive';//默认第一个选中 313 | CampusInfo.Main[0].style.display = 'block';//默认第一个内容显示 314 | CampusInfo.Head.onclick=function () { 315 | CampusInfo.OpenWeb('http://seo.1473.cn') 316 | };//校内版点击跳转 317 | for (var i = 0; i < CampusInfo.Nav.length; i++) {//循环所有导航元素添加绑定事件 318 | (function (i) { 319 | CampusInfo.Nav[i].onclick = function () {//添加点击事件 320 | CampusInfo.AutoState=false;//如果点击了就取消自动切换,将自动切换禁用 321 | for (var j = 0; j < CampusInfo.Nav.length; j++) {//循环改变所有导航为未选中状态,所有内容为隐藏 322 | CampusInfo.Nav[j].className = ''; 323 | CampusInfo.Main[j].style.display = 'none'; 324 | } 325 | CampusInfo.Nav[i].className = 'CampusInfoHeadNavActive';//给指定的导航添加选中 326 | CampusInfo.Main[i].style.display = 'block';//给指定的内容添加显示 327 | } 328 | })(i) 329 | } 330 | ipcRenderer.on('quit',()=>{ 331 | CampusInfo.QuitFlag=true; 332 | }); 333 | window.onbeforeunload=(event)=>{ 334 | if(!CampusInfo.QuitFlag&&process.env.NODE_ENV !== 'development') { 335 | MainWindow.hide(); 336 | return false 337 | } 338 | }; 339 | };//绑定事件 340 | CampusInfo.AutoSlider = function () { 341 | if (CampusInfo.AutoState) {//如果自动切换模式打开 342 | CampusInfo.NowShow++;//默认为-1,切换对应CampusInfo.Main显示 343 | if (CampusInfo.NowShow === CampusInfo.Nav.length) {//如果是最后一个则返回第一个 344 | CampusInfo.NowShow = 0; 345 | } 346 | for (var i = 0; i < CampusInfo.Nav.length; i++) {//循环改变所有导航为未选中状态,所有内容为隐藏 347 | CampusInfo.Nav[i].className = ''; 348 | CampusInfo.Main[i].style.display = 'none'; 349 | } 350 | CampusInfo.Nav[CampusInfo.NowShow].className = 'CampusInfoHeadNavActive';//给指定的导航添加选中 351 | CampusInfo.Main[CampusInfo.NowShow].style.display = 'block';//给指定的内容添加显示 352 | setTimeout(function () { 353 | CampusInfo.AutoSlider();//开始自动切换 354 | }, 5000);//5秒切换一次 355 | } 356 | };//自动切换 357 | CampusInfo.LoadWeather=function (location) { 358 | if(!location){//如果没有传地址就默认为深圳 359 | location='深圳' 360 | } 361 | U.A.Request("http://api.map.baidu.com/telematics/v3/weather?location="+location+"&output=json&ak=v4Wf3i6LQtNU0CvL3fScxzIx", null, function (rs) { 362 | rs = rs.value.results[0].weather_data[0]; 363 | var temperature=rs.temperature; 364 | var weather=rs.weather; 365 | CampusInfo.WeatherPanel.innerHTML=location+' '+weather+' '+temperature;//将返回信息输出到对应元素内 366 | }); 367 | };//获取天气 368 | CampusInfo.Init = function () { 369 | CampusInfo.AutoState=true;//默认为true自动切换,false不切换 370 | CampusInfo.NowShow=-1;//默认显示第几个-1是为了加载完成不会直接跳过第一个 371 | CampusInfo.ResourceUrl = 'http://fs.1473.cn/';//资源地址 372 | CampusInfo.Loading=$(".CampusInfoLoading")[0]; 373 | CampusInfo.WeatherPanel=$(".CampusInfoHeadWeather")[0]; 374 | CampusInfo.NavContainer = $(".CampusInfoHeadNav")[0];//导航元素主容器 375 | CampusInfo.MainContainer = $(".CampusInfoMain")[0];//内容元素住容器 376 | CampusInfo.Nav = [];//记录导航元素 377 | CampusInfo.Main = [];//记录内容元素 378 | CampusInfo.Advert = [];//记录广告区域 379 | CampusInfo.QuitFlag=false; 380 | CampusInfo.Head=$(".CampusInfoHeadTitle span")[0];//获取头部的校内版元素 381 | for (var i = 0; i < CampusInfo.NavData.length; i++) {//循环导航数组创建元素 382 | var area = [];//初始化area数组 383 | var leftContent = [];//初始化左侧内容数组 384 | var li = $$("li", { 385 | "innerHTML": CampusInfo.NavData[i].name 386 | }, CampusInfo.NavContainer);//创建一个导航元素在导航容器内 387 | var container = $$("div", { 388 | "className": "CampusInfoContainer", 389 | }, CampusInfo.MainContainer);//创建一个主内容容器在内容容器内 390 | var left_container = $$("div", { 391 | "className": "CampusInfoContLeft", 392 | }, container);//创建一个左侧内容区域在主容器里 393 | var center_container = $$("div", { 394 | "className": "CampusInfoContCenter", 395 | }, container);//创建一个中心内容区域在主容器里 396 | var right_container = $$("div", { 397 | "className": "CampusInfoContRight", 398 | }, container);//传建一个右侧内容容器在数组里 399 | CampusInfo.Nav[i] = li;//将导航元素丢进数组里 400 | CampusInfo.Main[i] = container;//将页面元素丢进数组里 401 | CampusInfo.Main[i].tag = CampusInfo.NavData[i].tag;//获取导航数组的内容标签 402 | CampusInfo.Main[i].dataLength = CampusInfo.NavData[i].dataLength;//获取导航数组规定的下方内容数据个数4或者8 403 | CampusInfo.Main[i].resource = CampusInfo.NavData[i].resource;//获取导航数组中的数据来源 404 | for (var j = 0; j < 3; j++) { 405 | area[j] = $$("div", { 406 | "className": "CampusInfoContCenterContent", 407 | }, center_container);//创建一个用来放置内容的元素,因为有三栏内容 所以创建三个并记录到ara数组 408 | area[j].TitleArea = $$("p", { 409 | "className": "CampusInfoContCenterTitle", 410 | }, area[j]);//创建放置标题的元素,同样三个 丢进area下的TitleArr数组 411 | for (var k = 0; k < CampusInfo.NavData[i].dataLength; k++) { 412 | $$("span", { 413 | "className": "CampusInfoContCenterCArea" + CampusInfo.NavData[i].dataLength 414 | }, area[j]);//这里根据之前取出的数据长度创建元素,丢进area里的ContentArea 415 | area[j].ContentArea = area[j].getElementsByTagName('span');//记录创建的span数组 416 | } 417 | CampusInfo.Main[i].Center = area;//将area丢回内容元素下的中间部分 418 | leftContent[j] = $$("div", { 419 | "className": "CampusInfoContLeftContent" 420 | }, left_container);//创建三个放置左侧内容的元素 421 | leftContent[j].ImgArea = $$("img", {"draggable":false}, leftContent[j]);//对应三个内容的img标签 丢回leftContent下的ImgArea数组 422 | leftContent[j].TitleArea = $$("p", {}, leftContent[j]);//对应三个内容的标题,丢回leftContent下的TitleArea数组 423 | CampusInfo.Main[i].Left = leftContent//将leftContent丢进主容器下的左侧数组 424 | } 425 | for (var k = 0; k < 2; k++) { 426 | var advert = $$("div", { 427 | "className": "CampusInfoContRightContent", 428 | }, right_container);//在每个右侧版块创建两个放置广告的元素 429 | CampusInfo.Advert.push(advert)//将创建的广告容器元素丢进数组里 430 | } 431 | } 432 | for(var i=0;i=30){//如果如果li标签页大于35 61 | confirm("窗口太多,请关闭一些再使用");//弹出提示 62 | return false; 63 | } 64 | const protocol=url.parse(e.url).protocol; 65 | if(protocol==='http:'||protocol==='https:'||protocol==="about:blank"){ 66 | US_Browser.CreatBrower(e.url);//系统的默认浏览器中打开新的URL 67 | } 68 | }); 69 | webview.addEventListener("page-favicon-updated",function (e) {//当页面收到图标网址时触发 70 | ListBody.tag_favicon.src=e.favicons[0]; 71 | this.tag.data.favicons=e.favicons[0]; 72 | }); 73 | webview.addEventListener('will-navigate',function (e) {//导航跳转时触发 74 | this.tag.data.url=e.url; 75 | if(webview===US_Browser.SelecteWebview) { 76 | US_Browser.Head[5].value=e.url; 77 | } 78 | }); 79 | webview.addEventListener('did-navigate',function (e) {//导航完成时触发 80 | this.tag.data.url=e.url; 81 | if(webview===US_Browser.SelecteWebview) { 82 | US_Browser.Head[5].value=e.url; 83 | } 84 | ListBody.Webname.innerHTML=this.getTitle(); 85 | }); 86 | webview.addEventListener('did-navigate-in-page',function (e) {//导航完成时触发 87 | this.tag.data.url=e.url; 88 | US_Browser.Head[5].value=e.url; 89 | US_Browser.CheckState(this); 90 | }); 91 | webview.addEventListener('page-title-updated',function (e) {//导航完成时触发 92 | this.tag.data.name=e.title; 93 | ListBody.Webname.innerHTML=e.title; 94 | }); 95 | webview.addEventListener('dom-ready',function (e) {//加载完成webview后执行 96 | ListBody.Webname.innerHTML=this.getTitle();//更改webview的title 97 | this.tag.data.name=this.getTitle(); 98 | US_Browser.CheckState(this); 99 | this.focus(); 100 | this.getWebContents().focus(); 101 | US_Browser.isready = true 102 | }); 103 | webview.addEventListener('did-get-response-details',function (e) { 104 | US_Browser.LoadTips.innerHTML='正在请求:'+e.originalURL; 105 | }); 106 | webview.addEventListener('did-start-loading',function (e) { 107 | ListBody.tag_favicon.src=''; 108 | US_Browser.IsLoading(this,true); 109 | }); 110 | webview.addEventListener('did-finish-load',function (e) { 111 | US_Browser.IsLoading(this,false); 112 | US_Browser.LocalStorage(this); 113 | }); 114 | webview.addEventListener('did-frame-finish-load',function (e) { 115 | US_Browser.IsLoading(this,false) 116 | }); 117 | webview.addEventListener('did-stop-loading',function (e) { 118 | US_Browser.IsLoading(this,false) 119 | }); 120 | webview.addEventListener('load-commit',function (e) { 121 | US_Browser.LoadTips.innerHTML=e.url; 122 | US_Browser.IsLove(e.url) 123 | }); 124 | webview.addEventListener('found-in-page', function(e) { 125 | if (e.result.finalUpdate) { 126 | US_Browser.Elm[1].innerHTML=e.result.activeMatchOrdinal+'/'+e.result.matches; 127 | US_Browser.Elm[2].onclick=function () { 128 | 129 | }; 130 | US_Browser.Elm[3].onclick=function () { 131 | US_Browser.SelecteWebview.findInPage(US_Browser.Elm[0].value) 132 | }; 133 | } 134 | }); 135 | webview.addEventListener('did-fail-load',function (e) { 136 | if (e.errorCode === -3) { 137 | return 138 | } 139 | US_Browser.SelecteWebview.src = './blank.html' 140 | }); 141 | /*webview.addEventListener('did-fail-load',function (e) { 142 | if(webview.state) { 143 | let msg = e.errorDescription; 144 | let old_url = US_Browser.Head[5].value; 145 | US_Browser.SelecteWebview.src = 'error.html?msg=' + msg + '&url=' + this.src; 146 | US_Browser.Head[5].value = old_url; 147 | } 148 | });*/ 149 | webview.fullSrceen=false; 150 | webview.FindKey=false; 151 | webview.onmousedown=function (e) {//webview鼠标事件 152 | US_Browser.US_OpenLinkInNew.style.display=US_Browser.US_OpenImgInNew.style.display='none'; 153 | ipcRenderer.on('elm',function (e,msg) { 154 | US_Browser.MouseData=msg; 155 | if(US_Browser.MouseData) { 156 | let tag = US_Browser.MouseData.tag; 157 | if (tag === 'A') { 158 | US_Browser.US_OpenLinkInNew.style.display = 'block'; 159 | US_Browser.US_OpenLinkInNew.onclick = function () { 160 | US_Browser.CreatBrower(US_Browser.MouseData.href) 161 | }; 162 | } else if (tag === 'IMG') { 163 | US_Browser.US_OpenImgInNew.style.display = 'block'; 164 | US_Browser.US_OpenImgInNew.onclick = function () { 165 | US_Browser.CreatBrower(US_Browser.MouseData.src) 166 | }; 167 | } else { 168 | US_Browser.US_OpenLinkInNew.style.display = US_Browser.US_OpenImgInNew.style.display = 'none'; 169 | } 170 | } 171 | }); 172 | US_Browser.MouseMenu(US_Browser.MouseMenuMain,this,e);//右键显示创建应用菜单 173 | }; 174 | ListBody.tag_close.onclick=function () {//点击标题页关闭按钮 175 | event.stopPropagation(); 176 | let closeArr = $(".tag_close"); 177 | closeArr[0].index = 0;//设置li下第一个关闭图标的index 178 | if(ListBody.tag_close.index === 0){ 179 | webview.tag.nextSibling.onclick();//点击当前li下一个 180 | }else{ 181 | webview.tag.previousSibling.onclick();//点击当前li上一个 182 | } 183 | if(ListBody.offsetWidth<50){ 184 | ListBody.Webname.style.display = "none"; 185 | }else{ 186 | ListBody.Webname.style.display = "block"; 187 | } 188 | US_Browser.NavContainer.removeChild(webview.tag);//移除当前li 189 | document.body.removeChild(BrowerContainer);//移除当前webview 190 | }; 191 | // 标签页右键‘关闭标签’ 192 | li.onmousedown = function (e) { 193 | if(e.button == 2 ){ 194 | US_Browser.MouseMenu($("#US_TagSet")[0],this,event); 195 | $("#DelectTags")[0].onclick = function(){ 196 | ListBody.tag_close.click(0) 197 | } 198 | } 199 | } 200 | webview.src=address;//给webview的src传值 201 | US_Browser.Bind(); 202 | ListBody.click();//点击li下的包裹节点 203 | if(flag){ 204 | let pattern = new RegExp("^[a-zA-Z]:/[a-zA-Z_0-9//]*"); 205 | if(pattern.test(address)){ 206 | webview.src = "file:///"+address; 207 | }else { 208 | if (address.match(http) || address.match(https)) {//判断是否存在http或https 209 | webview.src = address;//给webview的src传值 210 | } else if (this.value.match(www) || this.value.match(m)) { 211 | webview.src = 'http://' + this.value;//给webview的src传值 212 | } else { 213 | webview.src = 'https://www.baidu.com/s?cl=3&wd=' + this.value;//给webview的src传值 214 | } 215 | } 216 | webview.tag.getElementsByTagName('img')[0].style.display = "block";//标签页图标显示 217 | } 218 | US_Browser.BrowerList.drag(); 219 | };//创建一个新的浏览器选项卡 220 | US_Browser.MouseMenu=function (menu_main,data,e,flag) {//右键菜单事件 221 | let createNode=document.body;//获取第一和参数父元素 222 | let MouseMenuMain=$('.MouseMenuMain');//获取右键菜单事件的ul元素 223 | US_Browser.MouseMenuMainer.style.display='none'; 224 | for(let i=0;i createNode.offsetWidth) {//判断距左位置 234 | menu_main.style.left = menu_main.style.left.split('px')[0] - menu_main.offsetWidth -30+ 'px';//距左多少 235 | } 236 | if (menu_main.getBoundingClientRect().top + menu_main.offsetHeight> createNode.offsetHeight) {//判断距上位置 237 | menu_main.style.top = menu_main.style.top.split('px')[0] - menu_main.offsetHeight + 'px';//距上多少 238 | } 239 | } 240 | document.onmouseup = null;//清空 241 | } 242 | }; 243 | menu_main.onclick=createNode.onmousewheel=function () {//执行右键菜单隐藏 244 | for(let i=0;i-1){//判断搜索框是否有https 295 | US_Browser.LockIcon.style.color = '#035816'; 296 | }else { 297 | US_Browser.LockIcon.style.color = '#d3d3d3'; 298 | } 299 | }; 300 | /*浏览器按钮函数*/ 301 | US_Browser.about=function () { 302 | ipc.send('AboutUsW-show'); 303 | }; 304 | US_Browser.ShowHistory=function(){ 305 | ipc.send('BrowserHistory-show'); 306 | }; 307 | US_Browser.Feedback=function(){ 308 | ipc.send('BrowserFeedback-show'); 309 | }; 310 | US_Browser.ClearCache=function(){ 311 | localStorage.clear(); 312 | }; 313 | US_Browser.CreatBrowerWindow=function(){ 314 | ipc.send('newBrowersWindow') 315 | }; 316 | US_Browser.Print=function(){ 317 | US_Browser.SelecteWebview.print(); 318 | }; 319 | US_Browser.DevTools=function(){ 320 | if(US_Browser.SelecteWebview.isDevToolsOpened()){//判断是否存在 321 | US_Browser.SelecteWebview.closeDevTools();//关闭开发者工具 322 | } 323 | US_Browser.SelecteWebview.openDevTools();//打开开发者工具 324 | }; 325 | US_Browser.SourceCode = function () {//查看源代码 326 | US_Browser.CreatBrower("view-source:"+US_Browser.Head[5].value); 327 | }; 328 | US_Browser.Exit=function(){ 329 | BrowersWindow.close(); 330 | }; 331 | US_Browser.goBack = function(){//执行后退 332 | US_Browser.SelecteWebview.goBack(); 333 | }; 334 | US_Browser.goForward = function(){//执行前进 335 | US_Browser.SelecteWebview.goForward(); 336 | }; 337 | US_Browser.CampusInfo=function(){ 338 | ipc.send('CampusInfo') 339 | }; 340 | US_Browser.reFresh = function(){//执行刷洗 341 | if(US_Browser.SelecteWebview.state) { 342 | US_Browser.SelecteWebview.reload(); 343 | } 344 | }; 345 | US_Browser.Stop=function(){ 346 | US_Browser.SelecteWebview.stop(); 347 | }; 348 | US_Browser.IsLoading=function(webview,flag){ 349 | if(flag) { 350 | if (webview === US_Browser.SelecteWebview) { 351 | US_Browser.Head[2].className = 'icon-cancel'; 352 | webview.state=false; 353 | } else { 354 | US_Browser.Head[2].className = 'icon-cw'; 355 | webview.state=true; 356 | } 357 | US_Browser.LoadTips.style.display='block'; 358 | }else { 359 | if(webview===US_Browser.SelecteWebview) { 360 | US_Browser.Head[2].className='icon-cw'; 361 | webview.state=true; 362 | }else{ 363 | US_Browser.Head[2].className='icon-cancel'; 364 | webview.state=false; 365 | } 366 | US_Browser.LoadTips.innerHTML=''; 367 | US_Browser.LoadTips.style.display='none'; 368 | } 369 | }; 370 | /*浏览器初始化*/ 371 | US_Browser.IpcBind=function(){ 372 | ipcRenderer.on('flag', function(event, message){//接收用户指定的文件 373 | if(message==='-1'){ 374 | US_Browser.CreatBrower('http://client.1473.cn/homepage.html');//开始进入一个页面 375 | } 376 | }); 377 | ipcRenderer.on('url', function(event, message){//接收用户指定的文件 378 | if(message){ 379 | US_Browser.CreatBrower(message,true);//打开用户请求的页面 380 | } 381 | }); 382 | ipcRenderer.on('open-history', function(event, message){//接收历史记录地址 383 | if(message){ 384 | US_Browser.CreatBrower(message,true);//打开用户请求的页面 385 | } 386 | }); 387 | ipcRenderer.on('download-progress',function (event,message) { 388 | console.log(message) 389 | }); 390 | ipcRenderer.on('geturl',function (event,message) { 391 | US_Browser.CreatBrower(message);//开始进入一个页面 392 | }); 393 | ipcRenderer.on('size',function (event,message) { 394 | if(message>0){ 395 | US_Browser.ControlButton[1].className='icon-window-restore'; 396 | US_Browser.NavContainer.style.padding = "5px 0 0"; 397 | US_Browser.RightMenu.style.top='71px'; 398 | US_Browser.BrowerContainer.each(function (index,elm) { 399 | elm.style.top='106px'; 400 | elm.style.height='calc(100% - 106px)'; 401 | }) 402 | }else { 403 | US_Browser.ControlButton[1].className='icon-window-maximize'; 404 | US_Browser.NavContainer.style.padding = "15px 0 0"; 405 | US_Browser.RightMenu.style.top='81px'; 406 | US_Browser.BrowerContainer.each(function (index,elm) { 407 | elm.style.top='116px'; 408 | elm.style.height='calc(100% - 117px)'; 409 | }) 410 | } 411 | }) 412 | };//ipc通信绑定 413 | US_Browser.Bind=function(){//绑定 414 | US_Browser.BrowerListBody = $(".BrowerListBody"); 415 | US_Browser.BrowersTag=$(".BrowerList");//获取选项卡li 416 | US_Browser.BrowerContainer=$(".BrowerContainer");//获取webview 417 | US_Browser.SelecteWebview=US_Browser.BrowerContainer[0].children[0]; 418 | US_Browser.US_OpenLinkInNew=$(".US_OpenLinkInNew")[0]; 419 | US_Browser.US_OpenImgInNew=$(".US_OpenImgInNew")[0]; 420 | for(let i=0;i=30){//如果如果li标签页大于35 562 | alert("窗口太多,请关闭一些再使用");//弹出提示 563 | return false; 564 | } 565 | US_Browser.CreatBrower('./new.html'); 566 | US_Browser.Head[5].focus(); 567 | US_Browser.RightMenu.style.display='none'; 568 | US_Browser.MouseMenuMainer.style.display='none'; 569 | }; 570 | US_Browser.RightMenubtn.onclick = function () { 571 | if (window.localStorage.getItem('arr') === null) { 572 | window.localStorage.setItem('arr', `[{"url": "${US_Browser.SelecteWebview.src}","icon": "${$('.BrowerActive')[0].children[0].children[0].src}", "title": "${US_Browser.SelecteWebview.getTitle()}"}]`) 573 | } else if (window.localStorage.getItem('arr').indexOf(US_Browser.SelecteWebview.src) != -1) { 574 | let b = JSON.parse(window.localStorage.getItem('arr')) 575 | b.map((i, j) => { 576 | if (i.url === US_Browser.SelecteWebview.src) { 577 | let arr = JSON.parse(window.localStorage.getItem('arr')) 578 | arr.splice(j, 1); 579 | window.localStorage.setItem('arr', JSON.stringify(arr)) 580 | $('#LoveWebSize')[0].className = 'fa fa-heart-o' 581 | $('.MouseMenuMainer')[0].removeChild($('.MouseMenuMainer')[0].children[j]) 582 | $('#FavoritesUl')[0].removeChild($('#FavoritesUl')[0].children[j]) 583 | } 584 | }) 585 | return 586 | } else { 587 | let c = JSON.parse(window.localStorage.getItem('arr')) 588 | c.push({ 589 | "url": US_Browser.SelecteWebview.src, 590 | "icon": $('.BrowerActive')[0].children[0].children[0].src, 591 | "title": US_Browser.SelecteWebview.getTitle() 592 | }) 593 | window.localStorage.setItem('arr', JSON.stringify(c)) 594 | } 595 | US_Browser.xuanrang(US_Browser.SelecteWebview.src, $('.BrowerActive')[0].children[0].children[0].src, US_Browser.SelecteWebview.getTitle()) 596 | $('#LoveWebSize')[0].className = 'fa fa-heart' 597 | US_Browser.drag() 598 | } 599 | US_Browser.Loveitem = () => { 600 | if (window.localStorage.getItem('arr') === null){ 601 | let data = [ 602 | { 603 | "url":"http://www.1473.cn/", 604 | "icon":"./public/img/tray/logo.png", 605 | "title":"云端 - 1473.cn" 606 | } 607 | ] 608 | data.map((i, j) => { 609 | US_Browser.xuanrang(i.url, i.icon, i.title) 610 | window.localStorage.setItem('arr', `[{"url": "${i.url}","icon": "${i.icon}", "title": "${i.title}"}]`) 611 | }) 612 | return 613 | } 614 | JSON.parse(window.localStorage.getItem('arr')).map((i, j) => { 615 | US_Browser.xuanrang(i.url, i.icon, i.title) 616 | }) 617 | } 618 | US_Browser.IsLove = (msg) => { 619 | if (window.localStorage.getItem('arr') === null){ return } 620 | if (window.localStorage.getItem('arr').indexOf(msg) != -1) { 621 | $('#LoveWebSize')[0].className = 'fa fa-heart' 622 | } else { 623 | $('#LoveWebSize')[0].className = 'fa fa-heart-o' 624 | } 625 | } 626 | US_Browser.gotoLove = (msg) => { 627 | US_Browser.SelecteWebview.src = msg 628 | US_Browser.MouseMenuMainer.style.display = 'none' 629 | } 630 | US_Browser.xuanrang = (url, icon, title) => { 631 | $('#FavoritesUl')[0].innerHTML += `
  • 632 |
    633 | 634 |

    ${title}

    635 |
    636 |
  • ` 637 | $('.MouseMenuMainer')[0].innerHTML += `
  • 638 |
    639 | 640 |

    ${title}

    641 |
    642 |
  • ` 643 | } 644 | US_Browser.FavoritesMore.onclick = () => { 645 | US_Browser.MouseMenuMainer.style.display = 'block' 646 | } 647 | window.addEventListener('dragleave',function (e) { 648 | e.preventDefault(); 649 | return false; 650 | }); 651 | window.addEventListener('dragover',function (e) { 652 | e.preventDefault(); 653 | return false; 654 | }); 655 | window.addEventListener('dragenter',function (e) { 656 | e.preventDefault(); 657 | return false; 658 | }); 659 | window.addEventListener( "drop", function (e) { 660 | e.preventDefault(); 661 | return false; 662 | }, false ); 663 | document.body.onkeydown=function(evt){ 664 | evt = (evt) ? evt : window.event; 665 | if(evt.keyCode===112 ){ 666 | US_Browser.about(); 667 | }else if(evt.keyCode===114||((evt.ctrlKey)&&(evt.keyCode===70))||((evt.ctrlKey)&&(evt.keyCode===71))) {//查找 668 | US_Browser.Find(); 669 | }else if((evt.keyCode===116)||((evt.ctrlKey)&&(evt.keyCode===82))){//重新加载、刷新 670 | if(US_Browser.Head[2].className==='icon-cw') { 671 | US_Browser.reFresh() 672 | }else{ 673 | US_Browser.Stop(); 674 | US_Browser.Head[2].className='icon-cw'; 675 | } 676 | }else if((evt.ctrlKey)&&(evt.keyCode===72)){//历史记录 677 | US_Browser.ShowHistory(); 678 | }else if((evt.ctrlKey)&&(evt.keyCode===80)){//打印 679 | US_Browser.Print(); 680 | }else if((evt.ctrlKey)&&(evt.keyCode===84)){//打开一个新标签页 681 | US_Browser.CreatBrower(null); 682 | }else if((evt.ctrlKey)&&(evt.keyCode===78)){//打开一个新的窗口 683 | US_Browser.CreatBrowerWindow(''); 684 | }else if((evt.ctrlKey)&&(evt.keyCode===85)){//查看网页源代码 685 | US_Browser.SourceCode(); 686 | }else if((evt.altKey)&&(evt.keyCode===39)){//前进 687 | US_Browser.goForward(); 688 | }else if((evt.altKey)&&(evt.keyCode===37)){//后退 689 | US_Browser.goBack(); 690 | }else if(evt.keyCode===117){//选择地址栏 691 | if(document.activeElement.id===US_Browser.Head[5].id){ 692 | US_Browser.Head[5].blur(); 693 | }else{ 694 | US_Browser.Head[5].focus(); 695 | US_Browser.Head[5].select(); 696 | } 697 | }else if(evt.keyCode===121){//F10菜单 698 | US_Browser.RightMenu.style.display=US_Browser.RightMenu.offsetWidth?'none':'block'; 699 | }else if(evt.keyCode===122){//F11全屏 700 | if(US_Browser.SelecteWebview.fullSrceen){ 701 | if (document.exitFullscreen) { 702 | document.exitFullscreen(); 703 | } 704 | else if (document.mozCancelFullScreen) { 705 | document.mozCancelFullScreen(); 706 | } 707 | else if (document.webkitCancelFullScreen) { 708 | document.webkitCancelFullScreen(); 709 | } 710 | else if (document.msExitFullscreen) { 711 | document.msExitFullscreen(); 712 | } 713 | US_Browser.SelecteWebview.fullSrceen=false; 714 | }else{ 715 | US_Browser.SelecteWebview.webkitRequestFullscreen(); 716 | US_Browser.SelecteWebview.fullSrceen=true 717 | } 718 | }else if (evt.keyCode===123||((evt.ctrlKey)&&(evt.shiftKey)&&(evt.keyCode===73))) {//F12、ctrl+shift+i 719 | US_Browser.DevTools(); 720 | }else if((evt.ctrlKey)&&(evt.keyCode===87)) {//关闭标签页 721 | if ($(".BrowerContainer").length > 0) { 722 | US_Browser.SelecteWebview.tag.children[0].tag_close.click(); 723 | } 724 | }else if(((evt.ctrlKey)&&(evt.shiftKey)&&(evt.keyCode===81))){//退出浏览器 725 | US_Browser.Exit(); 726 | }else if(((evt.ctrlKey)&&(evt.shiftKey)&&(evt.keyCode===46))){ 727 | US_Browser.ClearCache(); 728 | }else if(((evt.altKey)&&(evt.shiftKey)&&(evt.keyCode===73))){ 729 | US_Browser.Feedback(); 730 | }else if(((evt.altKey)&&(evt.shiftKey)&&(evt.keyCode===83))){ 731 | US_Browser.CampusInfo(); 732 | } 733 | }; 734 | US_Browser.drag = function() { 735 | US_Browser.columns = document.querySelectorAll('#FavoritesUl .column'); 736 | US_Browser.columnser = document.querySelectorAll('.MouseMenuMainer .column'); 737 | US_Browser.dragEl = null; 738 | [].forEach.call(US_Browser.columns,function(column){ 739 | column.addEventListener("dragstart",US_Browser.domdrugstart,false); 740 | column.addEventListener('dragenter', US_Browser.domdrugenter, false); 741 | column.addEventListener('dragover', US_Browser.domdrugover, false); 742 | column.addEventListener('dragleave', US_Browser.domdrugleave, false); 743 | column.addEventListener('drop', US_Browser.domdrop, false); 744 | column.addEventListener('dragend', US_Browser.domdrapend, false); 745 | column.addEventListener('mousedown', US_Browser.onmousedown, false); 746 | }); 747 | [].forEach.call(US_Browser.columnser,function(column){ 748 | column.addEventListener('mousedown', US_Browser.onmousedown, false); 749 | }); 750 | } 751 | US_Browser.onmousedown = function(e){ 752 | let btnNum = e.button; 753 | let BookmarkSet = document.querySelector('#US_BookmarkSet') 754 | if(btnNum==2){ 755 | BookmarkSet.style.display = 'block' 756 | BookmarkSet.style.top = `${e.clientY}px` 757 | BookmarkSet.style.left = `${e.clientX}px` 758 | US_Browser.DelectBookmarktar = this 759 | } 760 | } 761 | US_Browser.domdrugstart = function(e) { 762 | 763 | US_Browser.dragEl = this; 764 | 765 | e.dataTransfer.setData("text/html",this.innerHTML); 766 | } 767 | US_Browser.domdrugenter = function(e) { 768 | } 769 | US_Browser.domdrugover = function(e) { 770 | if (e.preventDefault) { 771 | e.preventDefault(); 772 | } 773 | 774 | e.dataTransfer.dropEffect = 'move'; 775 | 776 | return false; 777 | } 778 | US_Browser.domdrugleave = function(e) { 779 | } 780 | US_Browser.domdrop = function(e) { 781 | if (e.stopPropagation) { 782 | e.stopPropagation(); 783 | } 784 | 785 | if (US_Browser.dragEl != this) { 786 | US_Browser.dragEl.innerHTML = this.innerHTML; 787 | this.innerHTML = e.dataTransfer.getData('text/html'); 788 | } 789 | let arr = JSON.parse(window.localStorage.getItem('arr')); 790 | let thiser = US_Browser.getchild(this) 791 | let laster = US_Browser.getchild(US_Browser.dragEl) 792 | let car = arr[thiser] 793 | arr[thiser] = arr[laster] 794 | arr[laster] = car 795 | window.localStorage.setItem('arr', JSON.stringify(arr)) 796 | return false; 797 | } 798 | US_Browser.domdrapend = function(e) { 799 | [].forEach.call(US_Browser.columns, function (column) { 800 | }); 801 | } 802 | US_Browser.getchild = function(msg){ 803 | var i=0; 804 | while(msg = msg.previousSibling){ 805 | i++; 806 | } 807 | return i - 1 808 | } 809 | US_Browser.DelectBookmark.onclick = function(){ 810 | let BookmarkSet = document.querySelector('#US_BookmarkSet') 811 | BookmarkSet.style.display = 'none' 812 | let b = JSON.parse(window.localStorage.getItem('arr')) 813 | b.map((i, j) => { 814 | if (i.url === US_Browser.DelectBookmarktar.getAttribute('data')) { 815 | let arr = JSON.parse(window.localStorage.getItem('arr')) 816 | arr.splice(j, 1); 817 | window.localStorage.setItem('arr', JSON.stringify(arr)) 818 | $('#FavoritesUl')[0].removeChild($('#FavoritesUl')[0].children[j]) 819 | $('.MouseMenuMainer')[0].removeChild($('.MouseMenuMainer')[0].children[j]) 820 | US_Browser.DelectBookmarktar.style.display = 'none'; 821 | if(i.url === US_Browser.SelecteWebview.src){ 822 | $('#LoveWebSize')[0].className = 'fa fa-heart-o' 823 | } 824 | } 825 | }) 826 | } 827 | US_Browser.OpenBookmark.onclick = function(){ 828 | US_Browser.CreatBrower(US_Browser.DelectBookmarktar.getAttribute('data')) 829 | document.querySelector('.US_BookmarkSet').style.display = 'none' 830 | } 831 | US_Browser.OpenBookmarker.onclick = function(){ 832 | ipc.send('openlove', US_Browser.DelectBookmarktar.getAttribute('data')) 833 | $('#US_BookmarkSet')[0].style.display = 'none'; 834 | } 835 | // 标签页拖动、右键单击事件 836 | US_Browser.BrowerList.drag = function () { 837 | US_Browser.tags = document.querySelectorAll('.bowerCreaterWindow .BrowerList'); 838 | US_Browser.tagEL = null; 839 | US_Browser.stScreenX = null; 840 | [].forEach.call(US_Browser.tags,function(BrowerList){ 841 | // 用户开始拖动元素或文本选择时会触发该事件 842 | BrowerList.addEventListener('dragstart',US_Browser.tagdragstart,false) 843 | // 当拖动的元素或文本选择进入有效的放置目标时,将触发该事件 844 | BrowerList.addEventListener('dragenter',US_Browser.tagdragenter,false) 845 | // 当在有效放置目标上拖动元素或文本选择时(每几百毫秒),将触发该事件。 846 | // 该事件在放置目标上触发。 847 | BrowerList.addEventListener('dragover',US_Browser.tagdragover,false) 848 | // 当拖动的元素或文本选择留下有效的放置目标时,将触发该事件 849 | BrowerList.addEventListener('dragleave',US_Browser.tagdragleave,false) 850 | // 在有效放置目标上删除元素或文本选择时会触发该事件 851 | BrowerList.addEventListener('drop',US_Browser.tagdrop,false) 852 | // 当拖动操作结束时(通过释放鼠标按钮或按下转义键)将触发该事件 853 | BrowerList.addEventListener('dragend',US_Browser.tagdragend,false) 854 | // 标签页右键单击事件 855 | BrowerList.addEventListener('mousedown',US_Browser.tagmousedown,false) 856 | }) 857 | } 858 | US_Browser.tagdragstart = function(e) { 859 | tagEL = e.target; 860 | stScreenX = e.screenX; 861 | } 862 | US_Browser.tagdragenter = function(e) { 863 | 864 | } 865 | US_Browser.tagdragover = function(e) { 866 | // 防止默认行为 867 | e.preventDefault(); 868 | e.dataTransfer.dropEffect = 'move'; 869 | } 870 | US_Browser.tagdragleave = function(e) { 871 | tagELf=false; 872 | } 873 | US_Browser.tagdrop = function(e) { 874 | e.preventDefault(); 875 | if (tagEL.nextSibling == this) { 876 | US_Browser.NavContainer.insertBefore(this,tagEL); 877 | } else if (tagEL.previousSibling == this) { 878 | US_Browser.NavContainer.insertBefore(tagEL,this); 879 | } else if (stScreenX < e.screenX) { 880 | US_Browser.NavContainer.insertBefore(tagEL,this.nextSibling) 881 | } else if (stScreenX > e.screenX) { 882 | US_Browser.NavContainer.insertBefore(tagEL,this) 883 | } 884 | tagELf=false; 885 | } 886 | US_Browser.tagdragend = function(e) { 887 | [].forEach.call(US_Browser.tags,function(BrowerList){}); 888 | } 889 | US_Browser.tagmousedown = function(e) { 890 | let TagSet = document.getElementById("US_TagSet"); 891 | US_Browser.MouseMenu(TagSet,this,event); 892 | } 893 | US_Browser.Head[0].style.color = '#d3d3d3'; 894 | US_Browser.Head[1].style.color = '#d3d3d3'; 895 | US_Browser.Head[2].style.color = '#d3d3d3'; 896 | US_Browser.MenuBack.style.color='#adadad'; 897 | US_Browser.MenuGo.style.color='#adadad'; 898 | };//浏览器头部事件绑定 899 | US_Browser.Init=function () {//初始化 900 | US_Browser.isready = false 901 | US_Browser.Love = window.localStorage.getItem('arr') 902 | US_Browser.NavContainer=$(".bowerCreaterWindow")[0];//获取标签页ul 903 | US_Browser.BrowerList = $(".BrowerList");// 获取标签页li 904 | US_Browser.MouseMenuMain=$("#webviewBrowserMenu")[0];//获取网页右键菜单 905 | US_Browser.RightMenu=$("#CampusInfoBrowserOnclickMenu")[0];//获取浏览器菜单 906 | US_Browser.RightMenubtn=$("#MouseMenuMainerBtn")[0];//获取浏览器菜单 907 | US_Browser.LoadTips=$(".BrowerTips")[0]; 908 | US_Browser.FindContainer=$(".BrowerFind")[0];//查找菜单主题 909 | US_Browser.Elm=$(".BrowerFind *");//查找菜单的子级 910 | US_Browser.MenuBack= $(".US_Browers_Back")[0]; 911 | US_Browser.MenuGo=$(".US_Browers_go")[0]; 912 | US_Browser.FavoritesMore = $('.FavoritesMore')[0] 913 | US_Browser.MouseMenuMainer = $('.MouseMenuMainer')[0] 914 | US_Browser.DelectBookmark = $('#DelectBookmark')[0] 915 | US_Browser.OpenBookmark = $('#OpenBookmark')[0] 916 | US_Browser.OpenBookmarker = $('#OpenBookmarker')[0] 917 | US_Browser.DelectBookmarktar = '' 918 | US_Browser.Elm[0].onkeyup=function (e) {//查找的input 919 | if(this.value.length&&e.keyCode!==8){//如果存在值 920 | US_Browser.SelecteWebview.findInPage(this.value); 921 | US_Browser.SelecteWebview.FindKey=this.value; 922 | }else{ 923 | US_Browser.SelecteWebview.stopFindInPage("keepSelection"); 924 | US_Browser.SelecteWebview.FindKey=false; 925 | } 926 | }; 927 | US_Browser.Elm[4].onclick=function () { 928 | US_Browser.Elm[2].onclick=US_Browser.Elm[3].onclick=null; 929 | US_Browser.SelecteWebview.FindKey?US_Browser.SelecteWebview.stopFindInPage("keepSelection"):''; 930 | US_Browser.FindContainer.style.display='none'; 931 | }; 932 | US_Browser.HeadBind(); 933 | US_Browser.IpcBind(); 934 | US_Browser.Loveitem(); 935 | }(); 936 | window.onload = function () { 937 | US_Browser.drag(); 938 | US_Browser.BrowerList.drag(); 939 | } -------------------------------------------------------------------------------- /public/js/preload.js: -------------------------------------------------------------------------------- 1 | const remote = require('electron').remote; 2 | const {ipcRenderer} = require('electron'); 3 | window.addEventListener('contextmenu', function (e) { 4 | e.preventDefault(); 5 | if(e.path[0].src||e.path[0].href) { 6 | let data = { 7 | "tag": e.path[0].tagName, 8 | "href": e.path[0].href || null, 9 | "src": e.path[0].src || null, 10 | }; 11 | ipcRenderer.send('elm', data) 12 | } 13 | }); -------------------------------------------------------------------------------- /screen/browers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zjinh/UseStudio.Browser/edcc3a1b5747cf211af9854ecf45cbcfce3946fd/screen/browers.png --------------------------------------------------------------------------------