修改jquery里的dialog对话框插件为框架页(iframe)
jquery有个很不错的ui插件,dialog插件,他的官方网站上有各种形式的演示:http://jqueryui.com/demos/dialog/ ,可能大家用得比较多的还是它的默认模式,具体的用法官网上都有,也有中文的讲解地址,我就不再重复了,最近在弄弹出框架页,仔细一看,和dialog插件的modal form 模式很相似,demo演示效果:http://www.lovewebgames.com/addNews.aspx
就是这么个效果,要进行登录注册弹出层,至于为什么我不直接用modal form来做呢?因为我喜欢,你管我。所以我就做了个jquery下面dialog的插件,需要引用原来dialog的文件。具体代码如下:
1 (function ($) {
2 $.fn.openWidow = function (options) {
3 var divId = "dialog" + Math.round(Math.random() * 100);
4 var settings = {
5 id: divId,
6 width: 300,
7 height: 200,
8 modal: true,
9 buttons: {
10 },
11 show: "explode",
12 hide: "highlight",
13 title: "提示",
14 url: "/test.aspx",
15 close: function () {
16 $("#" + this.id).remove();
17 //debugger
18 if (document.getElementById(this.id))
19 document.body.removeChild(document.getElementById(this.id));
20 }
21 };
22 if (options) {
23 $.extend(settings, options);
24 }
25 $("body").append('<div id="' + settings.id + '" title="Dialog Title"><p class="loading"></p></div>');
26 // Dialog
27 $('#' + settings.id).dialog({
28 autoOpen: false,
29 title: settings.title,
30 width: settings.width,
31 height: settings.height,
32 modal: true,
33 bgiframe: true,
34 show: settings.show,
35 hide: settings.hide,
36 buttons: settings.buttons,
37 close: settings.close,
38 open: function () {
39 $("#" + settings.id).html('<iframe src="' + settings.url + '" frameborder="0" height="100%" width="100%" id="dialogFrame" scrolling="auto"></iframe>');
40 },
41 resizeStop: function () {
42 $("#dialogFrame").css("width", parseInt($(this).css("width")) - 5);
43 $("#dialogFrame").css("height", parseInt($(this).css("height")) - 5);
44 }
45 });
46
47 $('#' + settings.id).dialog("open");
48 return this;
49 };
50 })(jQuery);
2 $.fn.openWidow = function (options) {
3 var divId = "dialog" + Math.round(Math.random() * 100);
4 var settings = {
5 id: divId,
6 width: 300,
7 height: 200,
8 modal: true,
9 buttons: {
10 },
11 show: "explode",
12 hide: "highlight",
13 title: "提示",
14 url: "/test.aspx",
15 close: function () {
16 $("#" + this.id).remove();
17 //debugger
18 if (document.getElementById(this.id))
19 document.body.removeChild(document.getElementById(this.id));
20 }
21 };
22 if (options) {
23 $.extend(settings, options);
24 }
25 $("body").append('<div id="' + settings.id + '" title="Dialog Title"><p class="loading"></p></div>');
26 // Dialog
27 $('#' + settings.id).dialog({
28 autoOpen: false,
29 title: settings.title,
30 width: settings.width,
31 height: settings.height,
32 modal: true,
33 bgiframe: true,
34 show: settings.show,
35 hide: settings.hide,
36 buttons: settings.buttons,
37 close: settings.close,
38 open: function () {
39 $("#" + settings.id).html('<iframe src="' + settings.url + '" frameborder="0" height="100%" width="100%" id="dialogFrame" scrolling="auto"></iframe>');
40 },
41 resizeStop: function () {
42 $("#dialogFrame").css("width", parseInt($(this).css("width")) - 5);
43 $("#dialogFrame").css("height", parseInt($(this).css("height")) - 5);
44 }
45 });
46
47 $('#' + settings.id).dialog("open");
48 return this;
49 };
50 })(jQuery);
我想大家应该都还看得懂的,没啥复杂的,就是重复重复再重复的工作。甚至很多参数本身就是dialog的,我只是加了层皮。我相信这个方法是很多新手都希望用到的,毕竟不是每个人都喜欢并熟练使用ajax,所以这时候iframe的用途还是很大的。
并希望有兴趣的朋友加入我的Q群:70210212、5678537,平时多勾通下,有问题不用一个人想。另有用jquery的sortable做自定义网站模块
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库