魏长东

weichangdong

正在查看: js 分类下的文章(第 2 页 / 共 23 篇)

监测是否离开页面

<script>
var hidden, state, visibilityChange; 
if (typeof document.hidden !== "undefined") {
	hidden = "hidden";
	visibilityChange = "visibilitychange";
	state = "visibilityState";
} else if (typeof document.mozHidden !== "undefined") {
	hidden = "mozHidden";
	visibilityChange = "mozvisibilitychange";
	state = "mozVisibilityState";
} else if (typeof document.msHidden !== "undefined") {
	hidden = "msHidden";
	visibilityChange = "msvisibilitychange";
	state = "msVisibilityState";
} else if (typeof document.webkitHidden !== "undefined") {
	hidden = "webkitHidden";
	visibilityChange = "webkitvisibilitychange";
	state = "webkitVisibilityState";
}

// 添加监听器,在title里显示状态变化
document.addEventListener(visibilityChange, function() {
	//document.title = document[state];
	if (document[state] == 'visible'){
		document.title = 'weichangdong'
	} else {
		document.title = 'look at me'
	}
}, false);

// 初始化
//document.title = document[state];
document.title = 'weichangdong';
</script>

nodejs 发get post请求

有时候在linux下,发送post一般用curl然后-d带上post数据,或者直接写php代码来发送请求。

用nodejs实现了下发送get和post请求。

post是向我的本地环境发送的,所以需要开启服务。node post 就OK。

var http = require("http");
http.createServer(function(req, res) {
	var body = [];
res.write(req.method);
//console.log(req.method);
    if(req.method == 'GET') {
		//res.write(res.query.toString());
		res.end("PATH: " + req.url);
	} else {
		//console.log(req.headers);
		req.on('data', function (chunk) {
			body.push(chunk);
		});

		req.on('end', function () {
			body = Buffer.concat(body);
			console.log(body.toString());
		});
	}
}).listen(8080);
console.log("HTTP server is listening at port 8080.");

»»阅读全文

nodejs 解析html模块

  • Haml haml implementation

  • Jade haml.js successor

  • EJS Embedded JavaScript

  • CoffeeKup CoffeeScript based templating

  • jQuery Templates for node

  •  

  • 用了EJS,觉得这个挺好的 有点像smarty,不想Jade 感觉页面好复杂的样子啊。其实我没用过Jade 只是接触了点EJS.

  • var app = express();
    app.engine("html", (require("ejs")).renderFile);
    
    app.set("view engine", "ejs");
    app.set("views", __dirname + "/views");
    app.use(express.static(__dirname + "/static"));
    
    app.use(cookieParser());
    app.use(bodyParser.urlencoded({ extended: false }));
    app.use(bodyParser.json());

js提交网址转码

做项目遇到一个小问题,通过get提交url的时候,因为url里面含有&符号,所以提交到服务器的时候,url就被分割了,导致接受到的url就不是原本输入的url了,就想到可js转码。

escape() 方法:
采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符 在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。unescape方法与此相反。不会被此方法编码的字符: @ * / +

 

encodeURI() 方法:
把URI字符串采用UTF-8编码格式转化成escape格式的字符串。不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + '

 

encodeURIComponent() 方法:(用了这个函数之后 就ok了)
把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码, 比如 / 等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个方法来进行编码,否则 / 字符被编码之后URL将显示错误。不会被此方法编码的字符:! * ( )

bootstrap ajax弹窗

直接调用模态对话框

<div id="myModal" class="modal hide fade">
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">x</button>
        <h3>对话框标题</h3>
    </div>
    <div class="modal-body">
        <p>对话框主体</p>
    </div>
    <div class="modal-footer">
        <a href="#" class="btn" data-dismiss="modal">取消</a>
        <a href="#" class="btn btn-primary" data-dismiss="modal">确定</a>
    </div>
</div>

<button type="button" data-toggle="modal" data-target="#myModal">打开对话框</button>
<a href="#myModal" role="button" class="btn" data-toggle="modal">打开对话框</button>

»»阅读全文

html 的select操作

html的select 的 onchange="selectAccoutId($(this).val())"
<script type="text/javascript">
function  selectAccoutId(id)
{
    //alert(id);
    var name=$("#account_id_list").find("option:selected").text();
    window.location= '/?act=Menu.mainRule&account_id='+id+'&account_name='+name;
    
}
</script>

»»阅读全文

jQuery选择器

jQuery 的选择器可谓之强大无比,记录下。
 
$("#myELement")    选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到的是唯一的元素 
$("div")           选择所有的div标签元素,返回div元素数组 
$(".myClass")      选择使用myClass类的css的所有元素 
$("*")             选择文档中的所有的元素,可以运用多种的选择方式进行联合选择:例如$("#myELement,div,.myclass") 
 
层叠选择器: 
$("form input")         选择所有的form元素中的input元素 
$("#main > *")          选择id值为main的所有的子元素 
$("label + input")     选择所有的label元素的下一个input元素节点,经测试选择器返回的是label标签后面直接跟一个input标签的所有input标签元素 
$("#prev ~ div")       同胞选择器,该选择器返回的为id为prev的标签元素的所有的属于同一个父元素的div标签 
 
基本过滤选择器: 
$("tr:first")               选择所有tr元素的第一个 
$("tr:last")                选择所有tr元素的最后一个 
$("input:not(:checked) + span")   
 
过滤掉:checked的选择器的所有的input元素 

»»阅读全文

ExtJs开发教程Ext.data.Store使用方法详解

今天借到一个新任务,看到页面好多

var softTypeComboxDataSearch = Ext.create('Ext.data.Store',{
			fields:['value','text'],
			data:[{'value':"",'text':"无限制"}, {'value':1,'text':'游戏'},
{'value':2,'text':'视频'},{'value':3,'text':'阅读'},{'value':4,'text':'广告插件'},
{'value':5,'text':'聊天通信'},{'value':6,'text':'地图导航'},{'value':7,'text':'音乐'},
{'value':8,'text':'其他常用软件'},{'value':9,'text':'通讯录'},{'value':10,'text':'通用目录'},
{'value':11,'text':'购物'},{'value':12,'text':'支付'},{'value':13,'text':'拍照美图'},
{'value':14,'text':'新闻资讯'},{'value':15,'text':'专有APP'},{'value':16,'text':'购物隐私'}]	
		});

这种的代码,搜了下,发现了好的教程,记录下。

»»阅读全文

thinkphp的ajax操作

ThinkPHP框架自带了一个易于扩展的JS类库,并且通过标签库技术和JS方法轻松导入。这个规范类似于ThinkPHP基类库的命名空间导入方式,并且该规范同样可以适用于CSS文件的导入。
基于标签库技术的JS类库引入方法
<html:import type='js' file='Js.Base' />

 <html:import file='Js.Util.Calendar' />

当然,我们还有更为简单的导入方法:

<load href=“__PUBLIC__/Js/Base.js” />
<load href=“__PUBLIC__/Js/prototype.js” />
<load href=“__PUBLIC__/Js/mootools.js” />
<load href=“__PUBLIC__/Js/Ajax/ThinkAjax.js” />

»»阅读全文