自定义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 ...
随机推荐
- thinkphp3.2.3如何只改变地址url中的某一个分隔符,其它保持不变
今天教大家一个关于使用thinkphp3.2.3改变只改变地址url中的某一个分隔符的方法,首先大家来看看这个地址! 它的原始地址应该是/Home/Index/index/page/2.html,那我 ...
- 使用Xshell对虚拟机上的Ubuntu系统进行远程连接
需要在Linux上安装openssh-server 1.在Ubuntu系统的终端下输入命令:sudo apt install openssh-server 2.在Xshell中输入指定连接的主机IP, ...
- python---列表(list)基本操作
列表基本操作:增.删.查.改等其他操作 创建列表: list1 = ["a","b","c","d"] name_lis ...
- A * B Problem Plus HDU - 1402 (FFT)
A * B Problem Plus HDU - 1402 (FFT) Calculate A * B. InputEach line will contain two integers A and ...
- js:随记
typeof:没有大写,因为typeof是运算符 *1:是转数字 +string:是转数字,在Date对象上是getTime ""+:是转字符串 "":bool ...
- 读取手机联系人,并用listview显示
读取手机联系人,用到的就是一个contentprovider. 数据库里面有三张重要的表 raw_contact 里面有所有联系人的数据 data 每个联系人的所有数据 mime-type 每条数据的 ...
- luogu1829 [国家集训队]Crash的数字表格
被 bs 了姿势水平--好好学习数学QAQQAQQAQ ref #include <iostream> #include <cstring> #include <cstd ...
- 45、gridview在改变位置之后无法完整显示的问题记录
gridview的父布局为layoutFather,gridview id为 layoutGridview layoutFather 高度设置为130dp layoutGridview高度设置为1 ...
- Python 模块搜索路径
Python 会在什么地方寻找文件来导入模块? 使用命名为 path 变量的存储在标准 sys 模块 下的一系列目录名和 ZIP 压缩文件. 你可以读取和修改这个列表.下面是在我的 Mac 上 Pyt ...
- java 获取请求的完整url地址
String url=request.getRequestURL()+"?"+request.getQueryString();