// ==UserScript== // @name 英语阅读助手 // @namespace http://tampermonkey.net/ // @version 0.7 // @description 点击开始,获取p 标签的单词,然后获取解释,鼠标悬停到段落便可以显示解释,也可以选择fixed 模式,然后点击段落,便可以显示单词列表,可以通过设置style_element 的内容设置此脚本面板的样式 // @author lavaf // @match http://127.0.0.1:8848/TestyoudaoTranslate/pages/testyouhou.html // @match http://www.51voa.com/* // @match http://phantomjs.org/* // @match https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.form.clientsize?view=netframework-4.8 // @match http://localhost/pages/testyouhou.html // @match https://developer.android.google.cn/reference/android/support/design/widget/FloatingActionButton?hl=en // @grant none // @require https://cdn.bootcss.com/jquery/3.4.1/jquery.js // @require https://cdn.jsdelivr.net/gh/emn178/js-sha256/build/sha256.min.js // @require https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js // @downloadURL https://update.greasyfork.icu/scripts/386479/%E8%8B%B1%E8%AF%AD%E9%98%85%E8%AF%BB%E5%8A%A9%E6%89%8B.user.js // @updateURL https://update.greasyfork.icu/scripts/386479/%E8%8B%B1%E8%AF%AD%E9%98%85%E8%AF%BB%E5%8A%A9%E6%89%8B.meta.js // ==/UserScript== (function() { 'use strict'; var appKey = '28aabe54f8ad1add'; var Secret = 'Uf2mY5g5x6OyCIE0EPmDCJFilo4cWqvB'; //注意:暴露appSecret,有被盗用造成损失的风险 var from_l = 'en'; var to = 'zh-CHS'; var no_translate = ['a', 'an', 'the', 'than', 'would', 'rather', 'may', 'woman', 'women', 'man', 'other', 'any', 'many', 'some', 'have', 'has', 'for', 'on', 'to', 'of', 'in', 'from', 'first', 'second', 'am', 'is', 'are', 'were', 'be', 'was', 'will', 'did', 'do', 'does', 'no', 'not', 's', 'n', 'you', 'us', 'myself', 'herself', 'his', 'he', 'her', 'i', 'me', 'him', 'they', 'it', 'it\'s', 'so', 'or', 'and', 'where', 'there', 'this', 'that', 'what', 'done', 'with', 'at', 'she' ] var no_idom = ['of'] //不需要翻译短语 var textPanel; //全局的单词列表面板对象 var result_count = 0; //已经获得的单词的数量 var result_table = {} //全部已经获得的单词 var deleted_table = {} //已经删除不再显示的单词 var speech_table = {} //存放音标和发音 var setting_item_name = ['show_delete_word_button', 'show_ph', 'show_ph_button'] var setting = { 'show_delete_word_button': false, 'show_ph': false, 'show_ph_button': false } var style = { controlpanel: { style: {}, child: { 'move-button': {}, 'start-button': {} } } } var adw = new addWin('50px', '100px'); /* 加载存储在local storage 中的数据 */ if (localStorage) { var a = [ 'result-table', 'speech-table', 'deleted-table', 'setting' ] var objects = [null, null, null, null] for (let var1 in a) { let current = a[var1] var result_temp = localStorage.getItem(current); if (result_temp != null) { objects[var1] = JSON.parse(result_temp); console.log("从localStorage中加载缓存" + current); adw.show("从localStorage中加载缓存" + current); } } if (objects[0] != null) result_table = objects[0] if (objects[1] != null) speech_table = objects[1] if (objects[2] != null) deleted_table = objects[2] if (objects[3] != null) setting = objects[3] } /* 获取已经保存的单词数目 */ for (let s in result_table) { result_count++; } var offestX, offestY; var movable = false; var panel = createControlPanel(); var audio = $("