找回密码
 注册账号

QQ登录

只需一步,快速开始

《泰拉瑞亚下载-1.4.2.3版》 泰拉瑞亚服务器 - MOD模组下载

入驻泰拉战网 新手指引 - 升级 - 师徒

泰拉瑞亚合成表 泰拉卡牌 - 泰拉江湖 - 泰拉刺客

联系泰拉开发组👈进入 积分市场 - 房产交易 - 水晶获取

查看: 4422|回复: 0

DISCUZ 前端JS showWindow函数解析,打造个性的弹窗

[复制链接]

348

主题

940

回帖

91

广播

监察巡站

我是一只咩

积分
443
泰拉
184
水晶
0
铜钥匙
0
银钥匙
0
金钥匙
0

【江湖新秀】【水贴恶魔】【我很聪明证】【我是小土豪】【宝剑回鞘】【泰拉达人】【奥运选手】【香水有毒】【朋友控】【我很囧证】【萝莉控】【视频爱好者】【潜水高手】【我很萌证】【我是公主】

QQ
发表于 2019-12-4 14:32:07 | 显示全部楼层 |阅读模式




showWindow(k, url, mode, cache, v)

以下列表说明各个参数的含义
key默认值含义可选值及解释
k(必填)浮窗的 key
url(必填)get 方式 url 表示浮窗请求的地址 post 方式 url 表示浮窗提交的表单 id

mode'get'弹窗请求类型get: ajaxget 方式请求 url post: ajaxpost 方式请求 url
cache1是否缓存弹窗内容1:是 0:否
v
由于 showWindow() 是以 showMenu() 函数为内核,因此此处可微调 showMenu() 参数,如不指定则使用 showWindow() 的默认值

提示:
    1.同一页面同时可以弹出多个浮窗,但 k 及 url 相同的浮窗同时只能显示一个。
    2.
浮窗标题区域支持拖拽。
    3.另外
关闭浮窗请使用 hideWindow(k)。

    为了方便说明如何利用这个函数开发,打造个性的弹窗页面,我们来看看主题列表页发帖按钮的弹窗机制:
   
    在forumdisplay页面上的发帖按钮有一个onclick的触发点,触发的函数为
showWindow('newthread', 'forum.php?mod=post&action=newthread&fid=40'),其中'newthread'是表示弹出窗口的div的id,'forum.php?mod=post&action=newthread&fid=40'表示请求的地址。

    在这个例子中,请求返回的是htm模板,值得注意的是,返回的应该是完整的模板文件,必须包含
  • <!--{template common/header}-->

[color=rgb(51, 102, 153) !important]复制代码

或者
  • <!--{template common/header_ajax}-->

[color=rgb(51, 102, 153) !important]复制代码

以及
  • <!--{template common/footer}-->

[color=rgb(51, 102, 153) !important]复制代码

或者
  • <!--{template common/footer_ajax}-->

[color=rgb(51, 102, 153) !important]复制代码

这样才能在窗口内正常显示。
   
我们来看看标准的弹窗包括三个部分:   
标题部分:
  • <h3 class="flb">你的标题</h3>

[color=rgb(51, 102, 153) !important]复制代码


在标题的后面可以附上关闭窗口的代码:
  • <span><a href="javascript:;"
  • class="flbc" title="{lang
  • close}">{lang close}</a></span>

[color=rgb(51, 102, 153) !important]复制代码

内容部分:
可以自行设计。
附上提示的代码:
  • <div class="alert_error">提示内容</div>

[color=rgb(51, 102, 153) !important]复制代码

class属性为alert_rightalert_error分别对应正确和错误的图标


按钮部分:
可以自行设计。

到此为止,showWindow函数的基本的使用方法介绍完毕了,这里只是抛砖引玉,希望能为大家在discuz!的开发和学习的路上提供一些帮助~




弹窗定时关闭


这些都是在程序端的showmessage()函数控制的,showmessage($message, $url_forward = '', $values = array(), $extraparam = array(), $custom = 0),其中$extraparam以array(key => value ...)的形式,配置输出的模式。
举个例子:
实现倒数自动关闭--
showmessage('', '', '',  array('showdialog' => true, 'closetime' => true));
howdialog        关闭原弹出框显示 showDialog 信息
timeout                定时跳转

有钱的捧个钱场 , 没钱的借钱捧个钱场!
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|友链申请|Archiver|手机版|小黑屋|游芯沙盒 ( 陕ICP备11006283号-1 )

GMT+8, 2024-11-23 22:40 , Processed in 0.118511 second(s), 34 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表