您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
add the development menu to formservers
// ==UserScript== // @name afs formserver development menu // @namespace com.aforms2web.ds.ujs // @description add the development menu to formservers // @include *afs_*.do* // @include *vav_*.do* // @include *formserver*.do* // @version 1.0 // @grant none // ==/UserScript== var js_forceTimeoutOverlay = "showTimeoutWarning('<h2>Timeout Warnung</h2><p>Ihre Session wird in 1 Minute ablaufen!</p>','Ok');"; var elem = document.createElement("div"); elem.id = 'xMy_menu'; elem.innerHTML = '<strong title="my development options">µ ⚒ ⌥</strong>' //[my dev menu] + '<span class="xMy_tool" title="Add Toggler to all Blocks" style="position: relative; top: -1px; left: 1px;" onclick="xMy_add_blocktoggler();">◈</span>' + '<span class="xMy_tool" title="Toggle all BlockContent visibilities" style="transform: rotate(-90deg);" onclick="xMy_toggle_allBlocks();">➠</span>' + '<span class="xMy_tool" title="Remove Toggler from all Blocks" style="font-size: 12px; margin-top:0px;" onclick="xMy_removeAllToggler();">♻</span>' + '<span class="xMy_sep">|</span>' + '<span class="xMy_tool" title="Click \'previous\' button" onclick="document.getElementById(\'previous\').click();">⤺</span>' + '<span class="xMy_tool" title="Click \'next\' button" onclick="document.getElementById(\'next\').click();">⤳</span>' + '<span class="xMy_tool" title="Jump to Navigationbar" style="transform: rotate(180deg);" onclick="document.getElementById(\'control_bar\').scrollIntoView();">↸</span>' + '<ul>' + '<li><span onclick="xMy_add_blocktoggler()" >Add Toggler to all Blocks</span></li>' + '<li><span onclick="xMy_toggle_allBlocks()" >Toggle all BlockContent visibilities</span></li>' + '<li><span onclick="xMy_removeAllToggler()" >Remove Toggler from all Blocks</span></li>' + '<li><span onclick="document.getElementById(\'next\').click();" >Click \'next\' button</span></li>' + '<li><span onclick="document.getElementById(\'previous\').click();" >Click \'previous\' button</span></li>' + '<li><span onclick="document.getElementById(\'control_bar\').scrollIntoView();" >jump to Navigationbar</span></li>' + '<li><span onclick="' + js_forceTimeoutOverlay + '" >force timeout overlay</span></li>' + '<li><span onclick="xMy_bodyPaddingRight(80)" >body padding-right:80% / redo</span></li>' + '</ul>'; document.body.appendChild(elem); var script = document.createElement("script"); script.setAttribute("type", "text/javascript"); script.innerHTML = 'var xMy_bodyPaddingRightOrig = "notSet";' + 'function xMy_bodyPaddingRight(size){' + ' var bdy = document.getElementsByTagName("body")[0];' + ' if(xMy_bodyPaddingRightOrig == "notSet"){ xMy_bodyPaddingRightOrig = bdy.style.paddingRight; bdy.style.paddingRight = size + "%"; }' + ' else{ bdy.style.paddingRight = xMy_bodyPaddingRightOrig; xMy_bodyPaddingRightOrig = "notSet"; }' + '}'; document.head.appendChild(script); var style = document.createElement("style"); style.setAttribute("type", "text/css"); style.innerHTML = '#xMy_menu { position: fixed; top: -1px; text-align: center; width:20em; left: 50%; margin-left: -10em; font-size:66%; border: 1px dotted rgba(77,77,144,0.66); border-radius: 0 0 0.66em 0.66em; background-color: rgba(222,222,222,0.75); color: #999999; z-index: 99999; } ' + '#xMy_menu:hover { background-color: rgba(222,222,222,0.90); border-color: #339933; box-shadow: 2px 2px 5px 1px #339933; color: #333333; } ' + '#xMy_menu ul { display: none; margin: 0.25em 0.25em 0.25em 1em; text-align: left; border-top: 1px dashed rgba(77,77,144,0.66); padding: 0.33em; } #xMy_menu:hover ul { display: block; } ' + '#xMy_menu strong { font-weight: normal; font-style: italic; color: #339933; } ' + '#xMy_menu strong:after { content: " ]"; color: #999999; } ' + '#xMy_menu strong:before { content: "[ "; color: #999999; } ' + '#xMy_menu span { cursor: pointer; } ' + '#xMy_menu span:hover { text-decoration: underline; color: #339933; } ' + '#xMy_menu span.xMy_sep { float: left; margin: -3px 1px; color: #999999; font-size: 14px; cursor: default; } ' + '#xMy_menu span.xMy_tool:hover { text-decoration: none; } ' + '#xMy_menu span.xMy_tool { float: left; font-size: 16px; margin: -3px 1px; } '; document.head.appendChild(style); // new part var xMy_css = new Array(); function xMy_writeStyle(css) { var style = document.createElement('style'); style.type = 'text/css'; if (document.getElementsByTagName) { document.getElementsByTagName('head')[0].appendChild(style); if (style.sheet && style.sheet.insertRule) { for (var i = 0; i < xMy_css.length; i++) { style.sheet.insertRule(xMy_css[i], 0); } } } } function xMy_addStyle(style) { xMy_css[xMy_css.length] = style; } // Define your CSS here xMy_addStyle(".xMy_blockListToggle{" + " margin: 0 7px 0 -7px !important;" + " color: #333333;" + " cursor: pointer;" + " position: relative;" + " top: -2px;" + " font-size: 16px;" + "}"); xMy_addStyle(".xMy_blockListToggle:hover{" + " color: #339933;" + " text-shadow: 1.75px 1.25px 1px #333333;" + "}"); // Writes CSS to the document xMy_writeStyle(xMy_css); var newScript = document.createElement("script"); var typeNode = document.createAttribute("type"); typeNode.nodeValue = "text/javascript"; newScript.setAttributeNode(typeNode); newScript.appendChild(document.createTextNode("" + "function xMy_toggle_blockList(elem, forceShow) {\n" + " var blockHeaderNode = elem.parentNode.parentNode.parentNode.parentNode.parentNode;\n" + " var blockContentNode = blockHeaderNode;\n" + " do {\n" + " blockContentNode = blockContentNode.nextSibling;\n" + " } while(blockContentNode.tagName == null || !(blockContentNode.tagName === 'DIV' || blockContentNode.tagName === 'div'));\n" + " if(forceShow || blockContentNode.style.display != 'block') {\n" + " blockContentNode.style.display = 'block';\n" + " elem.childNodes[0].nodeValue = '▲';\n" // ▲△ + " } else {\n" + " blockContentNode.style.display = 'none';\n" + " elem.childNodes[0].nodeValue = '▼';\n" // ▼▽ + " }\n" + "}\n" + "function xMy_toggle_allBlocks() {\n" + " if(!xMy_hasToggler()){\n" + " xMy_add_blocktoggler();\n" + " }\n" + " var elemList = document.getElementsByClassName('xMy_blockListToggle');\n" + " if(elemList != null && elemList.length > 0){\n" + " for(idx = elemList.length - 1; idx >= 0; idx--) {\n" + " xMy_toggle_blockList(elemList[idx]);\n" + " }\n" + " }\n" + "}\n" + "function xMy_removeAllToggler() {\n" + " var elemList = document.getElementsByClassName('xMy_blockListToggle');\n" + " if(elemList != null && elemList.length > 0){\n" + " for(idx = elemList.length - 1; idx >= 0; idx--) {\n" + " var elem = elemList[idx];\n" + " if(elem.tagName != null && (elem.tagName === 'SPAN' || elem.tagName === 'span')){\n" + " xMy_toggle_blockList(elem, true);\n" + " elem.parentNode.removeChild(elem);\n" + " }\n" + " }\n" + " }\n" + "}\n" + "function xMy_hasToggler() {\n" + " var elemList = document.getElementsByClassName('xMy_blockListToggle');\n" + " return elemList != null && elemList.length > 0;\n" + "}\n" + "function xMy_add_blocktoggler() {\n" + " if(!xMy_hasToggler()){\n" + " var blockList = document.getElementsByClassName('block'); \n" + " if(blockList != null && blockList.length > 0){\n" // ### Generate Toggle Link + " for(idx = blockList.length - 1; idx >= 0; idx--){\n" + " var block = blockList[idx];\n" + " if(block.tagName != null && (block.tagName === 'DIV' || block.tagName === 'div')){\n" + " var blockHeader = block.childNodes[1].childNodes[1].childNodes[1].childNodes[1].childNodes[1].childNodes[1];\n" + " var newSpan = document.createElement('span');\n" + " var attrNode = document.createAttribute('class');\n" + " attrNode.nodeValue = 'xMy_blockListToggle';\n" + " newSpan.setAttributeNode(attrNode);\n" + " var titleNode = document.createAttribute('title');\n" + " titleNode.nodeValue = 'Toggle BlockContent visibility';\n" + " newSpan.setAttributeNode(titleNode);\n" + " var onclickNode = document.createAttribute('onclick');\n" + " onclickNode.nodeValue = 'xMy_toggle_blockList(this);';\n" + " newSpan.setAttributeNode(onclickNode);\n" + " newSpan.appendChild(document.createTextNode('▲'));\n" + " blockHeader.insertBefore(newSpan, blockHeader.childNodes[1]);\n" + " }\n" + " }\n" + " }\n" + " }\n" + "} ")); document.getElementsByTagName('head')[0].appendChild(newScript);