全站通知:
模板:PopupNotice
刷
历
编
跳到导航
跳到搜索
本零件将尝试在所有引用模板:PopupNotice的页面上显示一个弹窗。
- 编辑可以定义该弹窗的内容、ID和沉默时间(interval)。如果用户点击了弹窗上的关闭按钮,则在沉默时间内同一ID的消息将不再显示。
- 如果需要显示另一条消息,请编辑模板:PopupNotice,为其配置新的内容和ID。
- 旧的消息将不再提示。未来会看情况加入多条消息的功能。
使用方法
{{{title|}}}
{{{content|}}}
3天内不再提示调用
- 在需要弹窗的页面中引用主模板({{popupNotice}})。
- 你可以在MediaWiki:Sitenotice中引用主模板以达到全站生效。
- 由于JS有缓存,你可能需要在安装零件后开启调试模式才能看到效果。
配置
直接修改popupNotice模板,修改其中的参数即可。如:
{{popupNotice/source |id= |enabled= |width= |interval= |title= |content= }}
参数说明
- ID
- 通知的标识,任意字符串。用户点击关闭后,浏览器将记录该通知的ID。指定时间内同一条通知不会再次显示。
- 如果需要在短时间内更换另一条通知,请更换另一个ID。
- 暂时不支持消息队列功能,即同一时间只能有一个通知生效。
- enabled
- 开关。属性值不为空时即生效。
- width
- 正数。弹出窗口的宽度,单位为px。填写时只需要填写数字即可。默认值为320px。
- interval
- 正整数。自用户首次点击关闭后,下一次弹出相同消息的间隔时间(天)。
- 默认为3天。你可以通过更改ID属性来重新弹出消息。
- title
- 通知的标题。
- content
- 通知的内容。可以使用wikitext。
美化
你可以访问模板:popupNotice/source修改弹窗样式。
测试
- 本文档额外引用了一次弹窗,你可以在本页进行测试。注意该弹窗与其他页面的弹窗内容一致。
- 你可以使用浏览器控制台进行cookies的操作,以便模拟用户的行为。
- 脚本中内置了控制台Log功能。在
MediaWiki:Gadget-PopupNotice.js
将debug
变量设置为true
时,脚本会向F12的控制台发送消息。建议在调试完成后将该变量改为false。 - 该功能会向cookies中写入名为
popupNotice-[站点前缀]-[通知ID]
的条目,从而使同一条通知被关闭后不会再次显示。 - 你可以用控制台运行
Cookies.get('popupNotice-[站点前缀]-[通知ID]')
命令来检查相应ID的cookies是否已被标记(即被阅读)。 - 同理,你可以运行
Cookies.remove('popupNotice-[站点前缀]-[通知ID]')
来删除条目,以达到模拟第一次阅读的效果。
- 脚本中内置了控制台Log功能。在
关于js-cookie的更多用法,请访问github.com/js-cookie。
移植模板
- 在管理的wiki下创建以下内容:
- 在管理的wiki下MediaWiki:Gadgets-definition页面中申明(需管理员权限)
* PopupNotice [ResourceLoader|default] | Js.cookie.js | PopupNotice.js