0
回答
node-webkit -- js注入
华为云4核8G,高性能云服务器,免费试用   

玩了很久node,,领导让弄个桌面应用,不想去捡c#了,,

纠结时看到了node-webkit,研究一下午,,做了个小东西,,

主要是取斗鱼某直播间中的所有acj事件,,


package.json


{
	"name": "douyu.chat",
	"main": "index.html",
	"nodejs":true,
	"window": {
		"title": "windowdemo",
		"toolbar": true,
		"width": 800,
		"height": 600,
		"resizable":true,
		"show_in_taskbar":true,
		"frame":true,
		"kiosk":false
	},
	"webkit":{
		"plugin":true
	}
}


index.html
<html>
<head>
	<title>douyuChat</title>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
	<script src="inject.js"></script>
</head>

<body>
	<div id="app">
		<ul>
			<li v-for="x in list">{{ x }}</li>
		</ul>
	</div>
	
	<script src="lib/vue.js"></script>
	<script src="lib/jquery-3.1.0.min.js"></script>
	<script>
		
		var gui = require('nw.gui');
		function douyu_info(e) {
			try {
				vm.list.push(JSON.stringify(e));
			}catch (e){}
		}
		
		var vm = new Vue({el: '#app',
			data: {
				list: []
			},
			methods:{
				add: function (json){
					vm.list.push(json);
				}
			}
		});
		
		(function ready() {
			var new_win = gui.Window.get(
				window.open('http://www.douyu.com/t/baozoumanhua')
			);
			new_win.on('document-end', function () {
				new_win.eval(null, nw_inject.toString() + "nw_inject();");
				new_win.window.dy_inject_init(douyu_info);
			});
		})();
	</script>
</body>
</html>



inject.js
function nw_inject() {
	window.dy_inject_init = function(callback) {
		var org_douyu_acj = window._ACJ_;
		window._ACJ_ = function (e) {
			try{
				callback && callback(e);
			}catch (e){}
			org_douyu_acj(e);
		};
	};
}



截图


东西比较简单,,只是个练手玩玩..见笑了


举报
永恒刹那
发帖于2年前 0回/470阅
顶部