Created October 28, 2002

Dropdown Navigation Where Only Some Links Open New Windows

Question: I need to make a dropdown that spawns a new window for some options but not for others - in the same drop down.

Basically I need the ability to make some <option value""> open a new window others not.

Been trying to figure it out forever.

So if you choose to solve this puzzle let me know.

Answer:
Sure, here it is!

See more dropdown navigation solutions.

HTML Source

<form action="../">
<select onchange="parseNavigation(this)">
    <!-- in each option, the value should               -->
    <!-- include a pipe "|" character before each url,  -->
    <!-- to open in a new window, specify a window name -->
    <!-- urls may be local                              -->
    <option>Choose a destination to open in a attribute-controlled popup window!</option>
    <option value="|http://www.yahoo.com/">YAHOO</option>
    <option value="GoogleWin|http://www.google.com/">GOOGLE</option>
    <option value="WSDWin|http://websandiego.org/">WEBSANDIEGO</option>
    <option value="|http://www.altavista.com/">ALTAVISTA</option>
    <option value="|http://www.amazon.com/">AMAZON</option>
    <option value="ArtLungWin|http://artlung.com/">ARTLUNG</option>
</select>
</form>

Source Code

<script type="text/javascript" language="JavaScript">
<!--
function parseNavigation(ob) {
// created by joe crawford october 2002
// http://artlung.com/lab/scripting/dropdown-only-some-new-window/
toBeBrokenDown = ob.options[ob.selectedIndex].value.split("|");

targetWindow = toBeBrokenDown[0];
targetURL    = toBeBrokenDown[1];

	if (targetWindow!=='') {
	// if a new Window name is specified, then it will
	// open in a new Window.
	window.open(targetURL,targetWindow,'toolbar=1,location=1,directories=1,status=1,menubar=1,scrollbars=1,resizable=1,width=400,height=300');
	// if we open a new window, then we have to re-set
	// the select box to the first option
	// which should have no value
	ob.selectedIndex = 0;
		} else {
	// or else it will open in the current window		
	window.open(targetURL,'_top')
	}
}
//-->
</script>
blog comments powered by Disqus