首先,使用node-webkit 做环境,废话不多说,直接贴HTML

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script src="scripts/jQuery_1.8.2.min.js"></script>
<script src="data.js"></script>
<link href="css/clear.css" rel="stylesheet" />
<link href="css/main.css" rel="stylesheet" />
<script type="text/javascript">
var gui = require("nw.gui");
var win = gui.Window.get();
win.setShowInTaskbar(false)
win.y = 0;
win.x = win.window.screen.availWidth - 300;
var tray = new gui.Tray({
title: "桌面股票",
icon: "icon.png"
});
tray.tooltip = "点击打开";
var menu = new gui.Menu();
menu.append(new gui.MenuItem({
label: '退出',
click: function () {
win.close();
}
}));
tray.menu = menu;
tray.click = function () {
win.show();
}
function Refresh() {
var zj = 0;
for (var item in stockData) {
(function (name, value) {
$.get("http://hq.sinajs.cn/list=sh" + name, function (data) {
eval(data);
var stockvalue = window["hq_str_sh" + name].split(',');
var ce = stockvalue[3] - stockvalue[2];
var yk = stockvalue[3] - value.value;
var tr = $("[data-id='" + name + "']");
tr.find("td:eq(0)").html(stockvalue[0]);
tr.find("td:eq(1)").html(stockvalue[3]);
tr.find("td:eq(2)").html(stockvalue[2]);
tr.find("td:eq(3)").html(ce.toFixed(2));
tr.find("td:eq(4)").html((yk * value.times).toFixed(2));
zj += +((yk * value.times).toFixed(2));
if (ce < 0) {
tr.find("td:eq(3)").css("color", "#0CC500");
}
else if (ce > 0) {
tr.find("td:eq(3)").css("color", "#C5001E");
}
else {
tr.find("td:eq(3)").css("color", "#000");
} if (yk < 0) {
tr.find("td:eq(4)").css("color", "#0CC500");
}
else if (yk > 0) {
tr.find("td:eq(4)").css("color", "#C5001E");
}
else {
tr.find("td:eq(4)").css("color", "#000");
} $("table tbody tr:last td:last").html(zj);
if (zj < 0) {
$("table tbody tr:last td:last").css("color", "#0CC500");
}
else if (zj > 0) {
$("table tbody tr:last td:last").css("color", "#C5001E");
}
else {
$("table tbody tr:last td:last").css("color", "#000");
}
});
})(item, stockData[item]); } } function init() {
var html = [];
for (var item in stockData) {
html.push("<tr data-id='" + item + "' data-value='" + stockData[item] + "'><td></td><td></td><td></td><td></td><td></td></tr>")
}
html.push("<tr data-id='zj'><td></td><td></td><td></td><td></td><td></td></tr>")
$("tbody").append(html.join(''));
} $(function () {
setInterval (function () {
Refresh();
}, 2000);
init();
Refresh();
});
</script>
</head>
<body>
<div id="container">
<table style="width:100%">
<thead>
<tr>
<td>名称</td>
<td>当前</td>
<td>昨收</td>
<td>幅度</td>
<td>盈亏</td>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
</body>
</html>

效果图如下:

源码在这里哦:

http://pan.baidu.com/s/1c0lRcxq

如何用JS和HTML 做一个桌面炒股小插件【原创】的更多相关文章

  1. 跟我一起做一个vue的小项目(二)

    这个vue项目是紧跟着之前的项目跟我一起做一个vue的小项目(一)来的. 我继续后面的开发(写的比较粗糙,边学边记录) 下图是header头部的样式 header组件内容如下 //header.vue ...

  2. 今天来做一个PHP电影小爬虫。

    今天来做一个PHP电影小爬虫.我们来利用simple_html_dom的采集数据实例,这是一个PHP的库,上手很容易.simple_html_dom 可以很好的帮助我们利用php解析html文档.通过 ...

  3. 4-13 Webpacker-React.js; 用React做一个下拉表格的功能: <详解>

    Rails5.1增加了Webpacker: Webpacker essentially is the decisions made by the Rails team and bundled up i ...

  4. 使用node.js做一个自用的天气插件

    var request = require('request') var url = 'http://www.baidu.com/home/xman/data/superload' var cooki ...

  5. 用Nodejs做一个简单的小爬虫

    Nodejs将JavaScript语言带到了服务器端,作为js主力用户的前端们,因此获得了服务器端的开发能力,但除了用express搭建一个博客外,还有什么好玩的项目可以做呢?不如就做一个网络爬虫吧. ...

  6. 实战:一、使用mongo做一个注册的小demo

    思路:1.使用mongoose 进行 数据库的链接 2.使用Schema来进行传输字段的定义 3.安装koa-router进行数据处理4.安装koa-bodyparser 进行post数据交互5.解决 ...

  7. 跟我一起做一个vue的小项目(八)

    接下来我们进行的是城市选择页面的路由配置 添加city.vue,使其点击城市,然后跳转到city页面 //router.js import Vue from 'vue' import Router f ...

  8. 跟我一起做一个vue的小项目(七)

    先看下我们所做项目的效果 这些数据都是我们在data中定义的,不是从后端数据中请求的.那么 接下来我们使用axios渲染数据 npm install axios --save 每个组件里面的数据都不相 ...

  9. 【酷Q插件制作】教大家做一个简单的签到插件

    酷Q插件已经有很多了,社区分享一大堆,不过还是自己写才有乐趣,哈哈.不得不吐槽一下,酷Q竟然不更新了,出了个酷Q pro,还收费!!诶.不过这也影响不了咱写插件的心情,今天教大家写一个酷Q签到插件,虽 ...

随机推荐

  1. python基础--文件开发目录规范

    bin start.py 主要是放着当前项目的启动文件 conf settiings.py 放着对当前文件的配置文件 core src.py 主要核心逻辑 db 数据存储文件 lib common.p ...

  2. day38 10-Spring的Bean的属性的注入

    后处理bean,如果是返回bean,那么什么都不做直接把这个类原封不动地给你返回回去. 在它执行一些逻辑方法的时候对它进行逻辑增强,比如说进行时间监控,权限管理,日志的记录等等. 要做肯定是对正常的类 ...

  3. CF1132G

    听说,一个好的Oier都是题目喂出来的. 题目 定义一个序列的最长贪心严格上升子序列为:若选出的子序列为 \(a\),对于其中相邻两项 \(i,j\),不存在 b\(i<k<j\),满足在 ...

  4. echarts 重新渲染(重新绘制,重新加载数据)等

  5. leetcode 1-20 easy

    1.Two Sum Given an array of integers, return indices of the two numbers such that they add up to a s ...

  6. myeclipse设置自动热部署

    MyEclipse中开发网站项目如何设置关联的Tomcat服务器热启动,即修改项目源代码时不需要每次都重启Tomcat 目前在做一个网站项目,使用MyEclipse+Tomcat,每次修改项目源代码时 ...

  7. Oracle操作XML各种场景介绍

    版权声明:凭栏处.潇潇雨歇. https://blog.csdn.net/IndexMan/article/details/28130961 近期在研究Oracle PLSQL中对于XML的系列操作. ...

  8. CWnd::Attach()具体解释

    CWnd::Attach Attaches a Windows window to a CWnd object. BOOL Attach(    HWND hWndNew ); Parameters ...

  9. R语言数据分析利器data.table包—数据框结构处理精讲

    R语言数据分析利器data.table包-数据框结构处理精讲 R语言data.table包是自带包data.frame的升级版,用于数据框格式数据的处理,最大的特点快.包括两个方面,一方面是写的快,代 ...

  10. 【JZOJ4770】【NOIP2016提高A组模拟9.9】闭门造车

    题目描述 自从htn体验了一把飙车的快感,他就下定决心要闭门造车!但是他两手空空怎么造得出车来呢?无奈的他只好来到了汽车零部件商店. 一走进商店,玲琅满目的各式零件看得htn眼花缭乱.但是他很快便反应 ...