MediaWiki:Gadget-full-article-links.js

From WikiMSK

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (โŒ˜-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (โŒ˜-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
function docReady(fn) {
    // see if DOM is already available
    if (document.readyState === "complete" || document.readyState === "interactive") {
        // call on next available tick
        setTimeout(fn, 1);
    } else {
        document.addEventListener("DOMContentLoaded", fn);
    }
}    
docReady(fullArticleLinks);

function fullArticleLinks() {
	var refs = document.getElementsByClassName('reference-text');
	for (var i = 0; i < refs.length; ++i) {
		if (refs[i].innerHTML.includes("https://dx.doi.org/") === true){
			if (refs[i].innerHTML.includes('target="_blank">DOI</a>')){
				var m = refs[i].innerHTML.search("https://dx.doi.org/") + 19;
			    var n = refs[i].innerHTML.search("DOI</a>") - 18;
			    var o = refs[i].innerHTML.substring(m,n);
			    refs[i].innerHTML = refs[i].innerHTML + "<a rel='nofollow noopener noreferrer' class='external text' href='https://" + "s" + "ci-hub.se/" + o + "' " + "target='_blank'" + ">SH</a>";					
			} else {
				var m = refs[i].innerHTML.search("https://dx.doi.org/") + 19;
			    var n = refs[i].innerHTML.search("DOI</a>") - 2;
			    var o = refs[i].innerHTML.substring(m,n);
			    refs[i].innerHTML = refs[i].innerHTML + " " + "<a rel='nofollow noopener noreferrer' class='external text' href='https://" + "s" + "ci-hub.se/" + o + "' " + "target='_blank'" + ">SH</a>";				
				
			}
	
		} else {
				refs[i].innerHTML = refs[i].innerHTML.replace(/PMID:\s(\d{7,8})/gi, 'PMID:' + "<a href='https://pubmed.ncbi.nlm.nih.gov/" + '$1' + "'" + "target='_blank'" + ">" + '$1' + "</a>")
		}
	}
  }
/(^10.\d{4,9}\/[-._;()/:A-Z0-9]+$)/i