Show All Questions on Qualtrics (use in edit mode of survey)
目前為
// ==UserScript==
// @name Qualtrics:Show All Questions
// @description Show All Questions on Qualtrics (use in edit mode of survey)
// @include https://*.qualtrics.com/ControlPanel/*Edit*
// @grant none
// @version 0.0.1.20160301185027
// @namespace https://greasyfork.org/users/4252
// ==/UserScript==
//Note: Only been tested in firefox
function OutputQuestions() {
Questions = document.getElementsByClassName("QuestionText");
var output;
output = ' <button id="button" type="button" onclick="ShowHideNAN()">Show/Hide Questions without numbers</button>';
output += '<table border="1">';
for (i = 0; i < Questions.length; i++) {
if (!document.getElementById("TrashArea").contains(Questions[i])) //don't include questions in trash (section at end)
{
if (!isNaN(Questions[i].textContent.trim().substr(0, 1))) { //if it starts with a number then show automatically (and ignore whitespace and html)
output += "<tr><td>" + Questions[i].innerHTML + "</td></tr>";
} else //if it doesnt start with a number then hide it
{
output += '<tr class="hidden"><td>' + Questions[i].innerHTML + '</td></tr>';
}
}
}
output += "</table>";
var myWindow = window.open("", "_blank", "scrollbars=yes, menubar=yes");
var newStyle = document.createElement('style');
newStyle.innerHTML = ".hidden{ display:none;}";
myWindow.document.head.appendChild(newStyle);
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.innerHTML = 'function ShowHideNAN() { rule = document.styleSheets[0].cssRules[0]; if (rule.style.display == "none") rule.style.display = "inline"; else rule.style.display = "none"; }';
myWindow.document.head.appendChild(newScript);
myWindow.document.body.innerHTML = output;
}
window.addEventListener('load', WindowLoadedOQ, false);
function WindowLoadedOQ() {
if (document.getElementsByClassName("EditSection")[1].classList[0] == "active") //if on edit tab
{
var OutputQuestionsButton = document.createElement('a');
OutputQuestionsButton.id = "OutputQuestionsButton";
document.getElementById("StatusBarLeftContainer").appendChild(OutputQuestionsButton);
ReadyButton();
}
}
function ReadyButton() {
OutputQuestionsButton = document.getElementById("OutputQuestionsButton");
OutputQuestionsButton.innerHTML = "Output Questions";
OutputQuestionsButton.className = "toggleButton";
OutputQuestionsButton.onclick = OutputQuestions;
}