; (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扩展方法的更多相关文章

  1. jquery扩展方法(表单数据格式化为json对象)

    1.jquery扩展方法(表单数据格式化为json对象) <script type="text/javascript"> // 将表单数据序列化为一个json对象,例如 ...

  2. jQuery扩展方法笔记

    一.方式列表: 1.jQuery.extend(Object); // jQuery 本身的扩展方法 2.jQuery.fn.extend(Object); // jQuery 所选对象扩展方法 二. ...

  3. 使用jquery获取url及url参数的方法及定义JQuery扩展方法

    1.jquery获取url很简单,代码如下: window.location.href; 其实只是用到了javascript的基础的window对象,并没有用jquery的知识. 2.jquery获取 ...

  4. Jquery 扩展方法

    $.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效. 如扩展$.fn.abc() 那么你可以这样子:$("#div").abc(); 通常使 ...

  5. jquery扩展方法

    jquery插件的开发包括两种:一种是类级别的插件开发,即给jquery添加新的全局函数,相当于给jquery类本身添加方法. jquery的全局函数就是属于jquery命名空间的函数,另一种是对象级 ...

  6. Jquery 扩展方法实现原理

    JSONP原理 首先:JSON和JSONP是不一样的概念. JSON是一种数据交换格式,而JSONP是非正式传输协议. 该协议的一个要点就是允许用户传递一个callback参数给服务端,然后服务端返回 ...

  7. jquery源码解析:jQuery扩展方法extend的详解

    jQuery中要扩展方法或者属性都是通过extend方法实现的.所谓的jQuery插件也是通过extend方法实现的. jQuery.extend扩展的是工具方法,也就是静态方法.jQuery.fn. ...

  8. jquery扩展方法案例

    -----------------扩展方法: $.extend({ "max": function (a, b) { if (a > b) return a; }, &quo ...

  9. jQuery扩展方法 (插件机制)

    jQuery.extend(object) 扩展jQuery对象本身. 用来在jQuery命名空间上增加新函数. 在jQuery命名空间上增加两个函数: <script> jQuery.e ...

随机推荐

  1. ubuntu16.04更换镜像源

    1.备份原有 cp /etc/apt/sources.list /etc/apt/sources.list.old 2.打开阿里巴巴镜像源:  https://opsx.alibaba.com/mir ...

  2. Python学习笔记(六)测试开发之接口开发

    Python的接口开发要使用到flask.Flask(__name__) 下面是一个简单的接口实例程序及访问效果: import flaskserver = flask.Flask(__name__) ...

  3. 传送流(TS)的基础知识

    数字电视的TS包和TS流的组成和功能 综合考虑几下几个因素: (1)包的长度不能过短,否则包头开销所占比例过大, 导致传输效率下降 (2)包的长度不能过长,否则在丢失同步的情况下恢复同步的 周期过长, ...

  4. (洛谷)P1019 单词接龙

    题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙" ...

  5. MongoDB集群部署 - 带访问控制的分片副本集

    1. 前言 Ceilometer将meter.event等数据保存在MongoDB中,之前将MongoDB部署在控制节点上,使用三副本模式,时间长了发现meter数据爆炸式增长,区区2T的磁盘捉襟见肘 ...

  6. 《鸟哥的Linux私房菜》学习笔记(6)——管道及IO重定向

    一.标准I/O                                                            标准输入:也可以叫STDIN,用0来标识,通常是键盘 标准输出:也 ...

  7. Linux下Oracle JDK替换Open JDK

    Oracle的产品需要Oracle JDK,但是Linux发行版附带的都是开源的Open JDK,这里给出的方法是在不删除原有Open JDK的情况下,安装Oracle JDK 环境 系统:CentO ...

  8. Android开发——JVM、Dalvik以及ART的区别

    )预编译也可以明显改善电池续航,因为应用程序每次运行时不用重复编译了,从而减少了 CPU 的使用频率,降低了能耗.

  9. 【面试】一篇文章帮你彻底搞清楚“I/O多路复用”和“异步I/O”的前世今生

    曾经的VIP服务 在网络的初期,网民很少,服务器完全无压力,那时的技术也没有现在先进,通常用一个线程来全程跟踪处理一个请求.因为这样最简单. 其实代码实现大家都知道,就是服务器上有个ServerSoc ...

  10. axure rp教程(四)动态面板滑动效果

    转载自: http://www.iaxure.com/74.html 实现目标: 1.  点击登录滑出登录面板 2.  点击确定滑出动态面板 最终效果如下: 这种效果可以通过两种方法实现: 首先准备需 ...