// ==UserScript== // @name LinkedIn Assessement Hyperlinker // @namespace https://www.linkedin.com/skill-assessments/*/quiz/* // @version 1.03 // @description A light weight script to convert LinkedIn assessment questions into a clickable hyperlink to help you pass. // @author JustSomeGuy // @include https://www.linkedin.com/skill-assessments/*/quiz/* // @grant none // @downloadURL none // ==/UserScript== var buttonElement = document.getElementsByClassName("sa-assessment-quiz__primary-action")[0]; // offset for page load setTimeout(function() { convertQuestionToHyperLink(); }, 200); function convertQuestionToHyperLink() { // get element containing question var questionElement = document.getElementById("assessment-a11y-title"); // get question text var questionText = document.getElementsByClassName("sa-assessment-quiz__multi-line")[0] //get name of assessment var title = document.getElementsByClassName("mt1")[0].innerHTML; // remove "assessment" from string title = title.replace("Assessment", ""); // remove leading/trailing spaces title = title.trim(); // extract question var question = document.querySelectorAll("#assessment-a11y-title span")[2].innerHTML; // set search URL var url = "https://google.com/search?q="+title+' '+question.split(' ').join('+'); // direct changes to the question breaks the process // create container for hyperlinked question var newquestionElement = document.createElement("span"); // create hyperlink var a = document.createElement("a"); // attach question to new container var newquestionText = document.createTextNode(question); // check to see if questionSpan id exists var questionSpan = document.getElementById("questionSpan"); // set href a.href = url; // set target a.target = '_blank'; // hide existing question container questionText.style.display = 'none'; // attach new container with clickable hyperlink newquestionElement.appendChild(a).appendChild(newquestionText); // set id of new container newquestionElement.id = "questionSpan"; // remove questionSpan element if it exists if (typeof(questionSpan) != 'undefined' && questionSpan !== null) { questionSpan.remove(); } // add questionSpan element before answers element questionElement.insertBefore(newquestionElement, questionElement.childNodes[0]); } // update question and hyperlink when next button is clicked buttonElement.addEventListener('click', function(){ setTimeout(function() { convertQuestionToHyperLink(); }, 500); }, false);