跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
槌基百科
搜索
搜索
外观
登录
个人工具
登录
查看“︁MediaWiki:Gadget-ViewerMode.js”︁的源代码
系统消息
讨论
English
阅读
查看源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
查看源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
←
MediaWiki:Gadget-ViewerMode.js
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于这些用户组的用户执行:
Superadmin
、editor
此页面为本wiki上的软件提供界面文本,并受到保护以防止滥用。如欲修改所有wiki的翻译,请访问
translatewiki.net
上的MediaWiki本地化项目。
您无权编辑此JavaScript页面,因为编辑此页面可能会影响所有访问者。
您可以查看和复制此页面的源代码。
/** * ViewerMode gadget — lets editors preview the site as a regular visitor. * Also fixes the missing icon on the "My blog" menu item. */ ( function () { 'use strict'; if ( mw.user.isAnon() ) { return; } var STORAGE_KEY = 'mw-viewer-mode'; var READER_ICON = 'vector-icon mw-ui-icon-watchlist mw-ui-icon-wikimedia-watchlist'; var EDITOR_ICON = 'vector-icon mw-ui-icon-wikiText mw-ui-icon-wikimedia-wikiText'; var active = localStorage.getItem( STORAGE_KEY ) === '1'; // Apply immediately to prevent flash of edit elements if ( active ) { document.documentElement.classList.add( 'viewer-mode' ); } function toggle() { active = !active; localStorage.setItem( STORAGE_KEY, active ? '1' : '0' ); document.documentElement.classList.toggle( 'viewer-mode', active ); updateButton(); } function updateButton() { var label = document.querySelector( '#pt-viewer-mode .viewer-mode-label' ); var icon = document.querySelector( '#pt-viewer-mode .vector-icon' ); if ( !label ) { return; } label.textContent = active ? 'Editor mode' : 'Reader view'; if ( icon ) { icon.className = active ? EDITOR_ICON : READER_ICON; } } $( function () { // Guard: only run once per page load if ( document.getElementById( 'pt-viewer-mode' ) ) { return; } // Fix missing icon on "My blog" var blogLink = document.querySelector( '#pt-simpleblog_myblog a' ); if ( blogLink && !blogLink.querySelector( '.vector-icon' ) ) { var blogIcon = document.createElement( 'span' ); blogIcon.className = 'vector-icon mw-ui-icon-article mw-ui-icon-wikimedia-article'; blogLink.insertBefore( document.createTextNode( ' ' ), blogLink.firstChild ); blogLink.insertBefore( blogIcon, blogLink.firstChild ); } // Add toggle to end of p-personal list // (logout lives in its own portlet: p-user-menu-logout) var menuList = document.querySelector( '#p-personal .vector-menu-content-list' ); if ( !menuList ) { return; } var li = document.createElement( 'li' ); li.id = 'pt-viewer-mode'; li.className = 'mw-list-item'; var a = document.createElement( 'a' ); a.href = '#'; var iconSpan = document.createElement( 'span' ); iconSpan.className = active ? EDITOR_ICON : READER_ICON; var textSpan = document.createElement( 'span' ); textSpan.className = 'viewer-mode-label'; textSpan.textContent = active ? 'Editor mode' : 'Reader view'; a.appendChild( iconSpan ); a.appendChild( document.createTextNode( ' ' ) ); a.appendChild( textSpan ); a.addEventListener( 'click', function ( e ) { e.preventDefault(); toggle(); } ); li.appendChild( a ); menuList.appendChild( li ); } ); }() );
返回
MediaWiki:Gadget-ViewerMode.js
。