您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Sanskrit Language Tools - Quick access to Sanskrit dictionary, thesarus, news and other tools, on Firefox and Chrome browsers.
当前为
// ==UserScript== // @name Sanskrit Tools - Toolbar // @namespace stgeorge // @description Sanskrit Language Tools - Quick access to Sanskrit dictionary, thesarus, news and other tools, on Firefox and Chrome browsers. // @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js // @grant GM_setValue // @grant GM_getValue // @version 2.4.17 // ==/UserScript== (function() { var DEBUG = false; var IGNORES = [ 'mail.yahoo.com', 'groups.yahoo.com', 'spokensanskrit.de', ]; var ALLOW_ANCHORS = [ 'sanskrit.uohyd.ernet.in/cgi-bin/scl/SHMT/generate.cgi', ]; var TOOLBAR_HTML = '\ <div id="s_toolbar">\ <div style="float:left; display:inline-block">\ <ul style="list-style:none;margin:0;padding:0">\ <li class="st_li">\ <a title="Doordarshan Sanskrit News/Magazine" class="st_common st_link" href="http://www.youtube.com/user/sanskritanews/videos" target="l_news">\ वार्ताः</a>\ </li>\ <li class="st_li">\ <a title="\'Sambhaashana Sandesha\' Magazine" class="st_common st_link" href="http://www.sambhashanasandesha.in/" target="l_mag1">सम्भाषण सन्देशः</a>\ </li>\ <li class="st_li">\ <a title="\'Vishva Vani\' Magazine" class="st_common st_link" href="http://www.speaksanskrit.org/vishvavani.shtml" target="l_mag2">विश्ववाणी</a>\ </li>\ <li class="st_li">\ <a title="Books" class="st_common st_link" href="http://www.sanskrit.nic.in/ebook.htm" target="l_books">पुस्तकानि</a>\ </li>\ <li class="st_li">\ <a title="Wikipedia" class="st_common st_link" href="http://sa.wikipedia.org" target="l_wiki">\ विकिपीडिया</a>\ </li>\ <li class="st_li">\ <a id="l_word" title="Show a random verb" class="st_common st_link" target="l_word">\यदृच्छिकपदम्</a>\ </li>\ <li class="st_li st_space">\ </li>\ <li class="st_li">\ <a title="Maheshwara Sutras" class="st_common st_link" href="http://en.wikipedia.org/wiki/Siva_Sutra#Text" target="l_msutra">\ माहेश्वरसूत्राणि</a>\ </li>\ <li class="st_li">\ <a title="Dictionary" class="st_common st_link" target="l_dict">\ शब्दकोशः</a>\ </li>\ <li class="st_li">\ <a title="Noun/Verb Expansion" class="st_common st_link" href="http://sanskrit.inria.fr/DICO/grammar.fr.html" target="l_inria">\ शभ्द, धातुरूपावली</a>\ </li>\ <li class="st_li">\ <a title="Sandhi splitter" class="st_common st_link" href="http://tdil-dc.in/san/sandhi_splitter/index_dit.html" target="l_sandhi">\ सन्धिः</a>\ </li>\ <li class="st_li st_space">\ </li>\ <li class="st_li">\ <div title="Double-clicking a word will automatically launch the dictionary" class="st_common st_option">\ <input type="checkbox" id="o_auto" class="st_common st_checkbox" title="Double-clicking a word will automatically launch the dictionary" checked="checked"/>\ <label for="o_auto" class="st_label">Auto-dictionary</label>\ </div>\ </li>\ <li class="st_li st_space">\ </li>\ </ul>\ </div>\ </div>\ <a id="a_dict" style="display:none" href="" target="l_dict"></a>\ </div>'; var ICON_HTML = '\ <div id="icon" title="Click to show/hide Sanskrit Toolbar">\u0938\ </div>'; var VERBS = [ 'accept','account','achieve','act','add','admit','affect','afford','agree','aim','allow','answer','appear','apply','argue','arrange','arrive','ask','attack','avoid','base','be','beat','become','begin','believe','belong','break','build','burn','buy','call','can','care','carry','catch','cause','change','charge','check','choose','claim','clean','clear','climb','close','collect','come','commit','compare','complain','complete','concern','confirm','connect','consider','consist','contact','contain','continue','contribute','control','cook','copy','correct','cost','count','cover','create','cross','cry','cut','damage','dance','deal','decide','deliver','demand','deny','depend','describe','design','destroy','develop','die','disappear','discover','discuss','divide','do','draw','dress','drink','drive','drop','eat','enable','encourage','end','enjoy','examine','exist','expect','experience','explain','express','extend','face','fail','fall','fasten','feed','feel','fight','fill','find','finish','fit','fly','fold','follow','force','forget','forgive','form','found','gain','get','give','go','grow','handle','happen','hate','have','head','hear','help','hide','hit','hold','hope','hurt','identify','imagine','improve','include','increase','indicate','influence','inform','intend','introduce','invite','involve','join','jump','keep','kick','kill','knock','know','last','laugh','lay','lead','learn','leave','lend','let','lie','like','limit','link','listen','live','look','lose','love','make','manage','mark','matter','mean','measure','meet','mention','mind','miss','move','need','notice','obtain','occur','offer','open','order','own','pass','pay','perform','pick','place','plan','play','point','prefer','prepare','present','press','prevent','produce','promise','protect','prove','provide','publish','pull','push','put','raise','reach','read','realize','receive','recognize','record','reduce','refer','reflect','refuse','regard','relate','release','remain','remember','remove','repeat','replace','reply','report','represent','require','rest','result','return','reveal','ring','rise','roll','run','save','say','see','seem','sell','send','separate','serve','set','settle','shake','share','shoot','shout','show','shut','sing','sit','sleep','smile','sort','sound','speak','stand','start','state','stay','stick','stop','study','succeed','suffer','suggest','suit','supply','support','suppose','survive','take','talk','teach','tell','tend','test','thank','think','throw','touch','train','travel','treat','try','turn','understand','use','visit','vote','wait','walk','want','warn','wash','watch','wear','win','wish','wonder','work','worry','write' ]; var toolbarHTML; var icon; var cbs = { l_word : show_word }; var visible = {}; var numClicks = 0; var vdiv = null; var allowAnchor = false; var selectedText = null; function main() { for (var i in IGNORES) { if (document.URL.indexOf(IGNORES[i]) != -1) { return; } } for (var i in ALLOW_ANCHORS) { if (document.URL.indexOf(ALLOW_ANCHORS[i]) != -1) { allowAnchor = true; break; } } init(); if (window.top != window.self) return; display(); } function display() { place('s_toolbar', TOOLBAR_HTML, { position: 'fixed', 'top': 0, margin: 0, // minHeight: '30px', width: '100%', zIndex: 2999999999, paddingTop: '3px', paddingBottom: '3px', backgroundColor: 'white', borderBottom: '1px solid orange', float: 'left', display:'none' }); for (var i in cbs) { (function(p) { $('#'+p).on('click', function(e) { e.preventDefault(); e.stopPropagation(); var cb = cbs[p]; cb($(this).attr('id')); }); })(i); } $('.st_li').css({ background: 'none', border: 0, display:'inline', padding: 0, }); $('.st_space').css({ marginLeft:'20px', }); $('.st_common').css({ float: 'left', border: 0, margin: 0, padding: 0, // height: '30px', fontSize: '15px', verticalAlign:'middle', }); $('.st_link').css({ textDecoration: 'none', fontWeight: 'bolder', marginLeft:'5px', padding:'5px', cursor: 'pointer', backgroundColor: '#eeeeee', color: 'black', }); $('.st_label').css({ marginLeft: '5px', }); $('.st_option').css({ display: 'inline-block', margin: '5px' }); $('.st_link').hover(function() { $(this).css({color:'orange'}); }, function() { $(this).css({color:'black'}); }); $('.st_checkbox').css({ margin: '5px' }); $('.st_menutrigger').css({ position: 'relative' }); $('.st_menu').css({ backgroundColor:'#eee', display:'none', listStyle: 'none', position:'absolute', width:'120px', // left:'50px', 'top': '50px', boxShadow: '5px 5px 5px #888888', zIndex:'999', }); $('.st_menu li').css({ width:'100px', listStyle: 'none inside', }); place('icon', ICON_HTML, { cursor:'pointer', 'float':'right', padding: '0px 15px 18px', fontWeight:'bold', backgroundColor: 'transparent', color:'red', position:'fixed', right:0, bottom: 0, height:'10px', width:'10px', zIndex:9999 }); icon = $('#icon').get(0); $('#icon').on('click', toggle); $('#o_auto').on('change', function(e) { GM_setValue('auto', $(this).prop('checked')); }); $('.st_menutrigger').on('click', function(e) { e.preventDefault(); e.stopPropagation(); show_menu(this); }); $(document).on('click', function(e) { $('.st_menu').css('display', 'none'); for (var i in visible) { visible[i] = false; } }); if (GM_getValue('status', 0)) show(); } function show_menu(ele) { var trigger = $(ele); var tgt = trigger.attr('data-menu'); var v = visible[tgt]; if (v) $(tgt).css('display', 'none'); else $(tgt).css('display', 'block'); visible[tgt] = !v; } function place(id, html, css) { $('body').prepend(html); $('#'+id).css(css); } function toggle() { var v = $('#s_toolbar').css('display'); if (v == 'none') show(); else hide(); } function show() { $('#s_toolbar').css({ 'display':'block', }); $('body').css('marginTop', '50px'); GM_setValue('status', 1); } function hide() { $('#s_toolbar').css({ 'display':'none', }); $('body').css('marginTop', 0); GM_setValue('status', 0); } function init() { document.addEventListener('mouseup', function(e) { var node = (e.target || e.srcElement); if (e.button != 0 || (node.nodeName == 'A' && !allowAnchor) || node.nodeName == 'INPUT') { return; } var n = node; while (n) { if (n == icon) { return; } if (n.getAttribute) { var ce = n.getAttribute('contenteditable'); if (ce) { return; } } n = n.parentNode; } if (++numClicks == 1) { window.setTimeout(function() { dictionaryLookup(); numClicks = 0; }, 300); } }, false); } function show_dict(id) { showDict(selectedText ? selectedText : ''); } function show_word(id) { var word = VERBS[Math.floor(Math.random() * VERBS.length)]; showDict(word, '&direction=ES'); } function dictionaryLookup() { selectedText = getSelectedText(true); if (selectedText != null && selectedText.length > 0) { if (selectedText.indexOf(' ') != -1) { selectedText = null; return; } if ($('#o_auto').prop('checked')) { showDict(selectedText); } } else { hideDict(); } } function getSelectedText(trim) { var text = (window.getSelection) ? window.getSelection().toString() : (document.getSelection) ? document.getSelection().toString() : (document.selection) ? document.selection.createRange().text : null; if (trim && text != null) text = text.trim(); return text; } function showDict(text) { hideDict(); var a = $('#a_dict'); a.on('click', function(e) { a.attr('href', 'http://spokensanskrit.de/index.php?trans=Translate&tinput='+text); }); a.get(0).click(); } function hideDict() { if (vdiv) { vdiv.close(); vdiv = null; } } function _debug(s) { if (DEBUG) console.log(s); } main(); })();