MediaWiki:AdvancedLBSSearch.js: Difference between revisions
Jcblmaster (talk | contribs) No edit summary |
Jcblmaster (talk | contribs) No edit summary |
||
Line 4: | Line 4: | ||
//mw.loader.load("https://code.jquery.com/ui/1.12.1/themes/cupertino/jquery-ui.css", "text/css"); | //mw.loader.load("https://code.jquery.com/ui/1.12.1/themes/cupertino/jquery-ui.css", "text/css"); | ||
//mw.loader.load("/mediawiki/js/jquery/jquery-1.12.4.min.js", "text/javascript"); | //mw.loader.load("/mediawiki/js/jquery/jquery-1.12.4.min.js", "text/javascript"); | ||
mw.loader.load("http:// | mw.loader.load("http://jcbl.jp/mediawiki/js/jquery/jquery-ui.css", "text/css"); | ||
mw.loader.load("http:// | mw.loader.load("http://jcbl.jp/mediawiki/js/jquery/jquery-ui.min.js", "text/javascript"); | ||
Revision as of 23:59, 30 April 2017
/////////////////////////////////////////////////////////////////////////////////////////////////// // safari、firefoxで上手く動作しないため、手元にダウンロードした最新版のコードを利用する。 //mw.loader.load( ['jquery.ui.autocomplete'] ); //mw.loader.load("https://code.jquery.com/ui/1.12.1/themes/cupertino/jquery-ui.css", "text/css"); //mw.loader.load("/mediawiki/js/jquery/jquery-1.12.4.min.js", "text/javascript"); mw.loader.load("http://jcbl.jp/mediawiki/js/jquery/jquery-ui.css", "text/css"); mw.loader.load("http://jcbl.jp/mediawiki/js/jquery/jquery-ui.min.js", "text/javascript"); $(function() { var url = '/mediawiki/api.php?action=query&prop=revisions&redirects=1&titles=Persist:ListMainchain&rvprop=content&rvparse=1&format=xml'; var xmlHttpRequest = new XMLHttpRequest(); xmlHttpRequest.onreadystatechange = function() { var READYSTATE_COMPLETED = 4; if(this.readyState == READYSTATE_COMPLETED){ var HTTP_STATUS_OK = 200; if(this.status == HTTP_STATUS_OK) { // success var xml = this.response.trim(); var parser = new DOMParser(); var dom = parser.parseFromString(xml, 'text/xml'); var rev = dom.getElementsByTagName("rev")[0]; var choices; if(rev.innerHTML != undefined) choices = rev.innerHTML.replace("</li></ul>","").split("</li><li>"); else // for Edge choices = rev.textContent.replace("</li></ul>","").split("</li><li>"); for(var i = 0; i < choices.length; i ++){ choices[i] = choices[i].replace(/^.*=/, "").replace(/,$/,""); } // choices = Array.from(new Set(choices)); // 重複を削除 Edgeで使えない var uniqChoices = Array(); for(var i = 0; i < choices.length; i ++){ if(uniqChoices.indexOf(choices[i]) == -1) uniqChoices.push(choices[i]); } choices = uniqChoices; $('#advanced_polysaccharide_sequence').autocomplete({ source: choices, autoFocus: false, delay: 0, minLength: 4 }); } else { // error console.log('retrieving is failed. ' + this.status + ':' + this.statusText + "/" + this.readyState); } } } // search xmlHttpRequest.open('GET', url, true); xmlHttpRequest.responseType = 'text'; xmlHttpRequest.send(null); var submit = document.getElementById("advanced_search_button"); submit.onclick = function(){ var mainchain = document.getElementById("advanced_polysaccharide_sequence").value; var searchchain = mainchain.replace(/\?/g, "\\?"); window.open("/wiki/Volatile:ListMol/LBS?my_1=" + searchchain + "&my_2=&my_3=" + mainchain, "_blank"); } });