Show all numbered questions on Qualtrics

Creates a pop up of all numbered questions on Qualtrics (use in edit survey mode)

目前为 2014-08-06 提交的版本,查看 最新版本

// ==UserScript==
// @name Show all numbered questions on Qualtrics
// @description Creates a pop up of all numbered questions on Qualtrics (use in edit survey mode)
// @include https://s.qualtrics.com/ControlPanel/*Edit*
// @grant none
// @version 0.0.1.20140806200730
// @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;
	OutputQuestionsButton.style.display = "";

}