自定义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 ...
随机推荐
- aop配置问题引发的报错
今天在使用注解配置aop时出现了几次的错误 INFO - Refreshing org.springframework.context.support.ClassPathXmlApplicationC ...
- 【Ecshop】修改处理用户购物车的行为
Ecshop v2.7.3的购物车处理方面在现在看来有比较反用户体验的设计: 用户未登录时加入购物车的商品,在用户登录后会被清空而不是加入到登录用户的购物车中: 用户登录后加入购物车的商品,在退出后会 ...
- wampserver怎么设置外网可访问
wampserver配置httpd.conf允许外网访问? 在电脑上开启wamp服务后,默认是禁止外部网络访问的,如果您想要同一局域网中的设备能够访问PC上的web项目,则需要对httpd.conf文 ...
- 02.VUE学习二之数据绑定
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...
- visual studio cl -d1reportSingleClassLayout查看内存f分布
C:\Users\Administrator\Desktop\cppsrc>cl -d1reportSingleClassLayoutTeacher virtual.cpp 用于 x86 的 M ...
- JQ剪辑图片插件,适用于移动端和PC端
主要用到以下JS文件: <script src="js/photo/iscroll-zoom.js"></script> <script src=&q ...
- Wireshark启动出现“无法启动此程序,因为计算机丢失api-ms-win-crt-runtime-l1-1-0.dll。”
由于重装了win7系统,安装wireshark启动出现了“无法启动此程序,因为计算机丢api-ms-win-crt-runtime-l1-1-0.dll”的问题. 网上查了一圈的资料终解决问题,于是整 ...
- 批处理文件执行cmd命令
@echo offstart "wumin" "C:\Windows\System32\cmd.exe" osk taskkill /f /im cmd.exe ...
- Django基于Pycharm开发之三[LANGUAGE_CODE与TIME_ZONE]
在django/conf/global_settings.py 中,我们可以找到关于language和timezone的通用配置信息,源码如下: # Local time zone for this ...
- Thread和Runnable的子类调用
实现线程的两种方式: 继承Thread类. 实现Runnable接口. 下面是一个小案例: public class Thread和Runnable { public static void main ...