自定义JQuery扩展方法
; (function ($, window, document, undefined) {
	$.getUrlParam = function (name) {
		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
		var r = window.location.search.substr(1).match(reg);
		if (r != null) return unescape(r[2]); return null;
	}
	$.extend($.fn, {
		GetPath: function () {
			var result = "";
			try {
				a = b;
			} catch (e) {
				if (e.fileName) {//firefox
					result = e.fileName;
				} else if (e.sourceURL) {//safari
					result = e.sourceURL;
				}
			}
			if (!result) {//IE与chrome
				var scripts = document.getElementsByTagName("script");
				var reg = /jquery.utils.js?/;
				for (var i = 0, n = scripts.length ; i < n ; i++) {
					var src = !!document.querySelector ? scripts[i].src : scripts[i].getAttribute("src", 4);
					if (src && reg.test(src)) {
						result = src;
						break;
					}
				}
			}
			return result;
		},
		GetUrlParms: function () {
			var args = new Object();
			var query = location.search.substring(1);//获取查询串
			var pairs = query.split("&");//在逗号处断开
			for (var i = 0; i < pairs.length; i++) {
				var pos = pairs[i].indexOf('=');//查找name=value
				if (pos == -1) continue;//如果没有找到就跳过
				var argname = pairs[i].substring(0, pos);//提取name
				var value = pairs[i].substring(pos + 1);//提取value
				args[argname] = unescape(value);//存为属性
			}
			return args;
		},
		LoadAp: function (options) {
			var pobj = this;
			var _height = pobj.height();
			if (_height == 0) {
				_height = GetClientHeight(0.9);
			}
			var divObj = $("<div style='text-align:center;vertical-align: middle;color: #01AEE5; width:" + pobj.width() + "px; height:" + _height + "px;line-height:" + _height + "px; font-weight:bold; font-size:20px; border:0px solid lightgray;overflow:hidden;'>正在载入图像...</div>");
			this.css("background", "url(\"/img/aploading.gif\") #151515 no-repeat center center");
			this.css("display", "block;");
			this.css("border", "0;");
			this.append(divObj);
			var url = options.url;
			if (options.data) {
				url = url + "?";
				jQuery.each(options.data, function (i, val) {
					url = url + i + "=" + val + "&";
				});
				if (url.endsWith("&")) {
					url = url.substr(0, url.length - 1);
				}
			}
			//var s = "";
			//s += " 网页可见区域宽:" + document.body.clientWidth;
			//s += " 网页可见区域高:" + document.body.clientHeight;
			//s += " 网页可见区域宽:" + document.body.offsetWidth + " (包括边线和滚动条的宽)";
			//s += " 网页可见区域高:" + document.body.offsetHeight + " (包括边线的宽)";
			//s += " 网页正文全文宽:" + document.body.scrollWidth;
			//s += " 网页正文全文高:" + document.body.scrollHeight;
			//s += " 网页被卷去的高:" + document.body.scrollTop;
			//s += " 网页被卷去的左:" + document.body.scrollLeft;
			//s += " 网页正文部分上:" + window.screenTop;
			//s += " 网页正文部分左:" + window.screenLeft;
			//s += " 屏幕分辨率的高:" + window.screen.height;
			//s += " 屏幕分辨率的宽:" + window.screen.width;
			//s += " 屏幕可用工作区高度:" + window.screen.availHeight;
			//s += " 屏幕可用工作区宽度:" + window.screen.availWidth;
			//s += " 你的屏幕设置是 " + window.screen.colorDepth + " 位彩色";
			//s += " 你的屏幕设置 " + window.screen.deviceXDPI + " 像素/英寸";
			//alert(s)
			var iframe = $("<iframe></iframe>");
			iframe.attr("id", "previewFrame" + Math.random()*10);
			iframe.attr("style", "width:100%; height:" + _height + "px; overflow:hidden; content:('正在载入图像...')");
			iframe.css("background", "url(\"/img/aploading.gif\") #151515 no-repeat center center");
			iframe.css("display", "block;");
			iframe.css("position", "absolute");
			iframe.css("z-index", "-1");
			iframe.attr("frameborder", "no");
			iframe.attr("border", "0");
			iframe.attr("marginwidth", "0");
			iframe.attr("marginheight", "0");
			iframe.attr("scrolling", "no");
			iframe.attr("allowTransparency", "true");
			iframe.attr("onload", function () {
				pobj.delay(2000);
				iframe.width(pobj.width());
				pobj.replaceWith(iframe);
				//iframe.height(document.parentWindow.document.documentElement.clientHeight);
			});
			iframe.attr("src", url);
			//if (iframe.attachEvent) {
			//	iframe.attachEvent("onload", function () {
			//		divObj.replaceWith(iframe);
			//	});
			//} else {
			//	iframe.onload = function () {
			//		divObj.replaceWith(iframe);
			//	};
			//}
		},
		WmpPlay: function (options) {
			var that = $(this);
			var playerId = that.attr("id");
			var objHtml = '<object id="' + playerId + '" style="z-index:-1" height="' + that.height() + '" width="' + that.width() + '" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6">';
			objHtml += '<param NAME="AutoStart" VALUE="0">';// <!--是否自动播放-->
			objHtml += '<param NAME="Balance" VALUE="0">';// <!--调整左右声道平衡,同上面旧播放器代码-->
			objHtml += '<param name="enabled" value="0">';// <!--播放器是否可人为控制-->
			objHtml += '<param NAME="EnableContextMenu" VALUE="0">';// <!--是否启用上下文菜单 -1:启用 0:不启用-->
			objHtml += '<param NAME="url" value="' + options.url + '">';// <!--播放的文件地址-->
			objHtml += '<param NAME="PlayCount" VALUE="1">';// <!--播放次数控制,为整数-->
			objHtml += '<param name="rate" value="1">';// <!--播放速率控制,1为正常,允许小数,1.0-2.0-->
			objHtml += '<param name="currentPosition" value="10000">';// <!--控件设置:当前位置-->
			objHtml += '<param name="currentMarker" value="0">';// <!--控件设置:当前标记-->
			objHtml += '<param name="defaultFrame" value="">';// <!--显示默认框架-->
			objHtml += '<param name="invokeURLs" value="0">';// <!--脚本命令设置:是否调用URL-->
			objHtml += '<param name="baseURL" value="">';// <!--脚本命令设置:被调用的URL-->
			objHtml += '<param name="stretchToFit" value="0">';// <!--是否按比例伸展-->
			objHtml += '<param name="volume" value="50">';// <!--默认声音大小0%-100%,50则为50%-->
			objHtml += '<param name="mute" value="0">';// <!--是否静音-->
			objHtml += '<param name="uiMode" value="None">';// <!--播放器显示模式:Full显示全部;mini最简化;None不显示播放控制,只显示视频窗口;invisible全部不显示-->
			objHtml += '<param name="windowlessVideo" value>';// <!--如果是0可以允许全屏,否则只能在窗口中查看-->
			objHtml += '<param name="fullScreen" value="0">';// <!--开始播放是否自动全屏-->
			objHtml += '<param name="enableErrorDialogs" value="-1">';// <!--是否启用错误提示报告-->
			objHtml += '<param name="SAMIStyle" value>';// <!--SAMI样式-->
			objHtml += '<param name="SAMILang" value>';// <!--SAMI语言-->
			objHtml += '<param name="SAMIFilename" value>';// <!--字幕ID-->
			objHtml += '<embed src="' + options.url + '" allowfullscreen="false" quality="high"  type="application/x-shockwave-flash" height="' + that.height() + '" width="' + that.width() + '"></embed>';
			objHtml += '</object>';
			objHtml += '<div class="play" style="cursor: pointer;" onclick="' + playerId + '.controls.play();"><img src="/images/jiantou.png" alt="" /></div>';
			that.replaceWith(objHtml);
			var player = document.getElementById(playerId);
			var fn = function () { //定义一个函数,这个函数内部会定义我们的回调函数
				function player::playstatechange(newstate) {
					switch (newstate) {
						case 1:
							//$(this).parent().find(".play").WmpPlay({ url: this.url });
							//$(this).remove();
							//alert("停止");
							break;
						case 2:
							//alert("暂停");
							break;
						case 3:
							//player.controls.pause();
							//alert("正在播放");
							break;
						case 4:
							//alert("4");
							break;
						case 5:
							//alert("5");
							break;
						case 6:
							//alert("正在缓冲...");
							break;
						case 7:
							//alert("7");
							break;
						case 8:
							//alert("8");
							break;
						case 9:
							//alert("正在连接...");
							break;
						case 10:
							//alert("准备就绪");
							break;
						case 11:
							//alert("11");
							break;
						default:
							//alert("");
					}
				}
			};
			fn(); //执行这个函数,也就是定义回调函数
			//player.controls.play();
		}
	});
	$.extend({
		//$.log('initializing...'); //调用
		log: function (message) {
			var now = new Date(),
				y = now.getFullYear(),
				m = now.getMonth() + 1, //!JavaScript中月分是从0开始的
				d = now.getDate(),
				h = now.getHours(),
				min = now.getMinutes(),
				s = now.getSeconds(),
				time = y + '/' + m + '/' + d + ' ' + h + ':' + min + ':' + s;
			console.log(time + ' My App: ' + message);
		}
	})
	//插件
	//在这里面,this指的是用jQuery选中的元素
	//example :$('a'),则this=$('a')
	//$('a').myPlugin();
	$.fn.myPlugin = function (options) {
		var defaults = {
			'color': 'red',
			'fontSize': '12px'
		};
		var settings = $.extend({}, defaults, options);//将一个空对象做为第一个参数
		return this.css({
			'color': settings.color,
			'fontSize': settings.fontSize
		});
	}
	//}(jQuery));
})(jQuery, window, document);
(function ($) {
	$.fn.autoresize = function (option) {
		/**
		* 版本号
		**/
		this.version = "1.0";
		var $this = $(this);
		var defaults = {
			"height": 1,
			"width": 0
		};
		var opts = $.extend(defaults, option);
		resize($this);
		function resize() {
			var $cur = $($this.get(0));//仅处理第一个
			//设置高度
			if (opts.height != 0) {
				var height = $(window).height();
				if (opts.height < 0) {
					height = height + opts.height;
					if ($(window).height() - height + opts.height < 4 && $.browser.msie) {
						//解决IE的4像素问题,IE的应用可能有一些限制
						$("html").css("overflow-y", "hidden");
					}
				} else {
					if (opts.height > 1) {
						opts.height = 1;
					}
					height = $(window).height() * opts.height;
					if ($(window).height() - height < 4 && $.browser.msie) {
						//解决IE的4像素问题,IE的应用可能有一些限制
						$("html").css("overflow-y", "hidden");
					}
				}
				$cur.height(height);
			}
			//设置宽度
			if (opts.width != 0) {
				var width = $(window).width();
				if (opts.width < 0) {
					width = width + opts.width;
				} else {
					if (opts.width > 1) {
						opts.width = 1;
					}
					width = $(window).width() * opts.width;
				}
				$cur.width(width);
			}
		}
		$(window).resize(function () {
			resize();
		});
	}
})(jQuery);
自定义JQuery扩展方法的更多相关文章
- jquery扩展方法(表单数据格式化为json对象)
		1.jquery扩展方法(表单数据格式化为json对象) <script type="text/javascript"> // 将表单数据序列化为一个json对象,例如 ... 
- jQuery扩展方法笔记
		一.方式列表: 1.jQuery.extend(Object); // jQuery 本身的扩展方法 2.jQuery.fn.extend(Object); // jQuery 所选对象扩展方法 二. ... 
- 使用jquery获取url及url参数的方法及定义JQuery扩展方法
		1.jquery获取url很简单,代码如下: window.location.href; 其实只是用到了javascript的基础的window对象,并没有用jquery的知识. 2.jquery获取 ... 
- Jquery 扩展方法
		$.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效. 如扩展$.fn.abc() 那么你可以这样子:$("#div").abc(); 通常使 ... 
- jquery扩展方法
		jquery插件的开发包括两种:一种是类级别的插件开发,即给jquery添加新的全局函数,相当于给jquery类本身添加方法. jquery的全局函数就是属于jquery命名空间的函数,另一种是对象级 ... 
- Jquery 扩展方法实现原理
		JSONP原理 首先:JSON和JSONP是不一样的概念. JSON是一种数据交换格式,而JSONP是非正式传输协议. 该协议的一个要点就是允许用户传递一个callback参数给服务端,然后服务端返回 ... 
- jquery源码解析:jQuery扩展方法extend的详解
		jQuery中要扩展方法或者属性都是通过extend方法实现的.所谓的jQuery插件也是通过extend方法实现的. jQuery.extend扩展的是工具方法,也就是静态方法.jQuery.fn. ... 
- jquery扩展方法案例
		-----------------扩展方法: $.extend({ "max": function (a, b) { if (a > b) return a; }, &quo ... 
- jQuery扩展方法 (插件机制)
		jQuery.extend(object) 扩展jQuery对象本身. 用来在jQuery命名空间上增加新函数. 在jQuery命名空间上增加两个函数: <script> jQuery.e ... 
随机推荐
- Datatable 省略显示列中内容,当鼠标放在内容上,悬浮显示全部内容
			第一种方法是网上看到的,没成功,贴出来参考一下 <!DOCTYPE html> <html lang="en"> <head> <meta ... 
- nginx安装php环境
			1.php下载地址 https://secure.php.net/downloads.php(此次安装版本为7.0.33) 2.安装依赖的包 yum -y install libxml2 yum -y ... 
- 嵌入式开发 centos7 交叉编译环境准备
			1. 安装centos7,启动图像化界面. 参考:https://blog.csdn.net/qq_23014435/article/details/74347925 # systemctl get- ... 
- 三 python并发编程之多线程-理论
			一 什么是线程 在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 线程顾名思义,就是一条流水线工作的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程 车间负责把资源整合 ... 
- 固定table的表头同时固定列
			table表格是我们最常使用的数据显示一种形式,但有时候数据比较多的时候 就需要我们去固定表头,固定列.我这里用简单的css样式配合两句js脚本来实现,希望能够去帮到你. <div class= ... 
- ZendFramework-2.4 源代码 - 关于Module - 模块入口文件
			<?php // /data/www/www.domain.com/www/module/Album/Module.php namespace Album; use Zend\ModuleMan ... 
- myeclipse10.5 crack(2012-12-27-bd 写的日志迁移
			首先去网上下一个破解文件如图: 解压过后打开的文件夹如图: 再打开crack文件夹如图: 运行run.bat如果点击它没反应就是你没有安装jdk,它如果运行就如图所示: 到这一步就在第一个方框user ... 
- yii2 基本的增删改查
			一:添加方法 1.1 使用成员属性的方式 save $user_name = $_POST['user_name']; $password = $_POST['password']; //实例化 $u ... 
- 分数调查 HihoCoder - 1515
			小Hi的学校总共有N名学生,编号1-N.学校刚刚进行了一场全校的古诗文水平测验. 学校没有公布测验的成绩,所以小Hi只能得到一些小道消息,例如X号同学的分数比Y号同学的分数高S分. 小Hi想知道利用这 ... 
- LeetCode刷题感想
			断断续续用了半年的时间把LeetCode刷完了,之前复习了数据结构与算法.将刷题与复习数据结构结合起来会更有效果.总之不是为了刷题而刷题,而是为了巩固和补充一部分知识. LeetCode真的是一个很好 ... 
