User:Mike Dillon/Scripts/searchNewWindow.js
From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Firefox/Mozilla/Safari: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Internet Explorer: press Ctrl-F5, Opera/Konqueror: press F5.
// Requires: [[User:Mike Dillon/Scripts/easydom.js]] // <pre><nowiki> // searchNewWindowDefault: Controls default state of checkbox on page load; "false" if unspecified var searchNewWindowDefault; if (searchNewWindowDefault == null) { searchNewWindowDefault = false; } // searchNewWindowLabel: Text to be used as the checkbox label var searchNewWindowLabel; if (searchNewWindowLabel == null) { searchNewWindowLabel = "New window?"; } addOnloadHook(function () { // Find the search form var searchform = document.getElementById("searchform"); if (!searchform) return; // Get the first div inside (holds the input elements) var searchdiv = searchform.getElementsByTagName("div")[0]; if (!searchdiv) return; with (easydom) { // Build the checkbox and onchange handler var newWindowCheckbox = input({ "id": "searchNewWindow", "type": "checkbox", "onchange": function () { if (this.checked) { searchform.setAttribute("target", "_blank"); } else { searchform.setAttribute("target", "_top"); } } }); // Add the checkbox and label to the div searchdiv.appendChild(div( { "class": "searchNewWindow" }, newWindowCheckbox, " ", label({ "for": "searchNewWindow" }, searchNewWindowLabel))); } // If searchNewWindowDefault is true, click the checkbox if (searchNewWindowDefault) { newWindowCheckbox.click(); } }); // </nowiki></pre>