自定义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 ...
随机推荐
- vue-cli的build的文件夹下没有dev-server.js文件,怎么配置mock数据
因为最新版本的vue-cli已经放弃dev-server.js,只需在webpack.dev.conf.js配置就行 新版webpack.dev.conf.js配置如下: 在const portfin ...
- LeetCode955删列造序 ||
问题:删列造序 || 给定由 N 个小写字母字符串组成的数组 A,其中每个字符串长度相等. 选取一个删除索引序列,对于 A 中的每个字符串,删除对应每个索引处的字符. 比如,有 A = [" ...
- javascript简易日历制作
学习记录 01.练习数组的用法 02.理解this.index的用法 03.绑定事件深入练习理解 html代码 <div id="date"> <ul id=&q ...
- url地址形式的传参格式拼接
例子一: var gid=pid=pizi=sn=newsn=sn_price=city_id=123; var params = 'gid=' +123; params += '&pid=' ...
- python学习笔记(四):生成器、内置函数、json
一.生成器 生成器是什么?其实和list差不多,只不过list生成的时候数据已经在内存里面了,而生成器中生成的数据是当被调用时才生成呢,这样就节省了内存空间. 1. 列表生成式,在第二篇博客里面我写了 ...
- IIC简介(转载)
来自:https://www.cnblogs.com/zalebool/p/4214599.html IIC简介: IIC 即Inter-Integrated Circuit(集成电路总线),这种总线 ...
- 13,scrapy框架的日志等级和请求传参
今日概要 日志等级 请求传参 如何提高scrapy的爬取效率 一.Scrapy的日志等级 - 在使用scrapy crawl spiderFileName运行程序时,在终端里打印输出的就是scrapy ...
- 使用chrome开发程序,自动刷新开发目录
npm i livereload -g 在开发目录下: livereload 安装这个插件:https://chrome.google.com/webstore/detail/livereload/j ...
- 1 django
1.MVC 大部分开发语言中都有MVC框架 MVC框架的核心思想是:解耦 降低各功能模块之间的耦合性,方便变更,更容易重构代码,最大程度上实现代码的重用 m表示model,主要用于对数据库层的封装 v ...
- 2 Model层-模型成员
1 类的属性 objects:是Manager类型的对象,用于与数据库进行交互 当定义模型类时没有指定管理器,则Django会为模型类提供一个名为objects的管理器 支持明确指定模型类的管理器 c ...