xkcd buttons Alt+Transcript+Explainxkcd

add btns to view transcript and alt and explainxkcd

// ==UserScript==
// @name        xkcd buttons Alt+Transcript+Explainxkcd
// @author      SammaySarkar
// @namespace   "SammaySarkar_Greasemonkey_Scripts"
// @description add btns to view transcript and alt and explainxkcd
// @version     1.6
// @include     /^https?\://(www\.)?xkcd\.com/?(\d+)?/?.*?$/
// @grant       none
// ==/UserScript==
// Hi, user! You can change some options in the USER SETTINGS block below!
// Read the accompanying commentary for explanations!

/* -> USER SETTINGS */
var xkcd_atx_showAlttext = 1; //1:display alttext below comic | 0:hide it
var xkcd_atx_showTscript = 0; //1:display transcript | 0:hide it
var xkcd_atx_moveTscript = 0; //1:move Tscript above 2nd nav controls | 0: keep position unchanged
var xkcd_atx_showExplain = 1; //1:show explain button | 0:hide it
var xkcd_atx_ntabExplain = 0; //1:open ExplainXKCD in new tab by default | 0: open in current tab

/* <- USER SETTINGS */






/* -> init */
var xkcd_atx_tscriptDiv = document.getElementById('transcript');
var xkcd_atx_parentElem = xkcd_atx_tscriptDiv.parentElement;
var xkcd_atx_alttext = document.getElementById('comic').getElementsByTagName('img') [0].title;
var xkcd_atx_tscript = xkcd_atx_tscriptDiv.textContent;
var xkcd_atx_comicNum = document.getElementsByClassName('comicNav') [0].getElementsByTagName('a') [1].getAttribute('href');
//if (xkcd_atx_comicNum == "#"){xkcd_atx_comicNum = 1;}
//else {
xkcd_atx_comicNum = parseInt(xkcd_atx_comicNum.slice(1, xkcd_atx_comicNum.length-1)) + 1;
//}
var xkcd_atx_UlNewBtns = document.createElement('ul');
xkcd_atx_UlNewBtns.className = 'comicNav';
//xkcd_atx_UlNewBtns.id = 'xkcdatx_newBtns';
xkcd_atx_parentElem.insertBefore(xkcd_atx_UlNewBtns, xkcd_atx_tscriptDiv);
//xkcd_atx_parentElem.insertBefore(document.createElement("hr"), xkcd_atx_UlNewBtns);
/* <- init */

/* -> alttext ctrl */
if (xkcd_atx_alttext != '') {
    var xkcd_atx_divAlttext = document.createElement('div');
    xkcd_atx_divAlttext.textContent = xkcd_atx_alttext;
    xkcd_atx_divAlttext.style.fontVariant = 'normal';
    xkcd_atx_divAlttext.style.fontSize = '10px';
    xkcd_atx_divAlttext.style.border = '1px solid #000';
    xkcd_atx_divAlttext.style.borderRadius = '3px';
    xkcd_atx_divAlttext.style.padding = '4px';
    xkcd_atx_divAlttext.style.margin = '2px 60px';
    xkcd_atx_divAlttext.style.backgroundColor = '#FFF9BD';
    if (xkcd_atx_showAlttext != 1) {
        xkcd_atx_divAlttext.style.display = 'none';
    }
    var xkcd_atx_LiBtnAlttext = document.createElement('li');
    var xkcd_atx_aBtnAlttext = document.createElement('a');
    xkcd_atx_aBtnAlttext.textContent = 'aLttext';
    xkcd_atx_aBtnAlttext.accessKey = 'l';
    xkcd_atx_aBtnAlttext.style.cursor = 'pointer';
    xkcd_atx_aBtnAlttext.title = 'display Alttext.\nAccesskey: L';
    xkcd_atx_LiBtnAlttext.appendChild(xkcd_atx_aBtnAlttext);
    xkcd_atx_UlNewBtns.appendChild(xkcd_atx_LiBtnAlttext);
    xkcd_atx_parentElem.insertBefore(xkcd_atx_divAlttext, document.getElementsByClassName('comicNav') [1]);

    xkcd_atx_aBtnAlttext.addEventListener('click', function () {
        if (xkcd_atx_divAlttext.style.display == 'none') {
            xkcd_atx_divAlttext.style.display = 'block';
        } 
        else {
            xkcd_atx_divAlttext.style.display = 'none';
        }
    });
}
/* <- alttext ctrl */

/* -> transcript ctrl */
if (xkcd_atx_tscript != '') {
    xkcd_atx_tscriptDiv.style.whiteSpace = 'pre-line';
    xkcd_atx_tscriptDiv.style.textAlign = 'justify';
    xkcd_atx_tscriptDiv.style.fontFamily = 'monospace';
    xkcd_atx_tscriptDiv.style.fontVariant = 'normal';
    xkcd_atx_tscriptDiv.style.fontSize = '12px';
    xkcd_atx_tscriptDiv.style.border = '1px solid #000';
    xkcd_atx_tscriptDiv.style.borderRadius = '3px';
    xkcd_atx_tscriptDiv.style.padding = '4px';
    xkcd_atx_tscriptDiv.style.margin = '16px 60px';
    xkcd_atx_tscriptDiv.style.backgroundColor = '#E4E4E4';
    if (xkcd_atx_showTscript != 0) {
        xkcd_atx_tscriptDiv.style.display = 'block';
    }
    var xkcd_atx_LiBtnTscript = document.createElement('li');
    var xkcd_atx_aBtnTscript = document.createElement('a');
    xkcd_atx_aBtnTscript.textContent = 'Transcript';
    xkcd_atx_aBtnTscript.accessKey = 't';
    xkcd_atx_aBtnTscript.style.cursor = 'pointer';
    xkcd_atx_aBtnTscript.title = 'display Transcript.\nAccesskey: T';
    xkcd_atx_LiBtnTscript.appendChild(xkcd_atx_aBtnTscript);
    xkcd_atx_UlNewBtns.appendChild(xkcd_atx_LiBtnTscript);

    if (xkcd_atx_moveTscript != 0) {
        xkcd_atx_parentElem.insertBefore(xkcd_atx_tscriptDiv, document.getElementsByClassName('comicNav') [1]);
    }
    xkcd_atx_aBtnTscript.addEventListener('click', function () {
        if (xkcd_atx_tscriptDiv.style.display != 'block') {
            xkcd_atx_tscriptDiv.style.display = 'block';
        } 
        else {
            xkcd_atx_tscriptDiv.style.display = 'none';
        }
    });
}
/* <- transcript ctrl */

/* -> explainxkcd ctrl */
if (xkcd_atx_showExplain != 0) {
    var xkcd_atx_LiBtnExplain = document.createElement('li');
    var xkcd_atx_aBtnExplain = document.createElement('a');
    xkcd_atx_aBtnExplain.textContent = 'eXplain';
    xkcd_atx_aBtnExplain.accessKey = 'x';
    //xkcd_atx_aBtnExplain.style.cursor = "pointer"; //already points to a link
    xkcd_atx_aBtnExplain.title = 'Open relevant ExplainXKCD page.\nAccesskey: X';
    xkcd_atx_LiBtnExplain.appendChild(xkcd_atx_aBtnExplain);
    xkcd_atx_UlNewBtns.appendChild(xkcd_atx_LiBtnExplain);
    xkcd_atx_aBtnExplain.href = 'http://www.explainxkcd.com/wiki/index.php/' + xkcd_atx_comicNum;
    if (xkcd_atx_ntabExplain != 0) {
        xkcd_atx_aBtnExplain.target = '_blank';
    }
}
/* -> explainxkcd ctrl */

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址