MediaWiki:Gadget-ECharts.js
来自小鱼君和他的朋友们
注意:在保存以后,您必须绕过浏览器缓存才能看到所作出的改变。
- 谷歌浏览器(Google Chrome)- Windows:按下“Ctrl”键然后按 F5。OS X系统:同时按⌘ Cmd和⇧ Shift键之后按R键。
- Safari - 按住⇧ Shift键然后点击工具栏中重新载入键。
- 火狐(Firefox)- Windows:按住Ctrl键然后按F5。OS X系统:同时按⌘ Cmd和⇧ Shift键之后按R键。
- Internet Explorer:按住Ctrl键然后按F5(或者点击“刷新”按钮)。
/** * @name WikiECharts * @desc Provides the function of inserting * ECharts table into the wiki page. */ !(function(window, $) { // @function loadScript var loadScript = function(url) { return $.ajax({ url: url, dataType: 'script', cache: true }) } // Get blocks var $blocks = $('.ECharts, .Echarts, .echarts') if ($blocks.length > 0) { // Load dependencies // These are trusted official CDN $.when( // Apache ECharts loadScript('https://unpkg.com/echarts'), // JSON5: https://github.com/json5/json5 loadScript('https://unpkg.com/json5') ).then(function() { $blocks.each(function(index, item) { var $this = $(item) var option = {} var text = $this.text() $this.html('') // Try to parse JSON try { // Parse JSON with JSON5 { foo: 'bar' } -> { "foo": "bar" } option = JSON5.parse(text) } catch (e) { $this.append( $('<pre>', { class: 'error', html: 'ECharts options parse error:\n' + e }) ) return console.warn('ECharts options parse error', item, e) } // Init Chart var thisChart = echarts.init($this.get(0)) thisChart.setOption(option) // Resize Chart thisChart.resize() $(window).on('resize', function() { thisChart.resize() }) $('.mw-collapsible-toggle, .pi-section-tab').click(function() { thisChart.resize() }) }) }) } })(window, jQuery);