Forum Moderators: open

Message Too Old, No Replies

Script working in Mozilla but not IE

         

MountainMan

5:03 am on Dec 21, 2004 (gmt 0)

10+ Year Member



Hello,

I created a simple list menu that links to other sites in a new window. I've found that it works fine in Mozilla but IE won't attempt to open them. Seems strange but maybe I'm missing something.

I've attached the code for reference.

Thanks

Matt

<form name="form1" >
<select name="FishandGame">
<option value="Dummy" selected>Select State</option>
<option value="http://www.dcnr.state.al.us/">Alabama</option>
</select>
<input type="button" name="Button1" value="Go" onClick="MM_jumpMenuGo('FishandGame','window.open()',0)">
</form>

Script:

function MM_jumpMenu(targ,selObj,restore){ //v3.0
if (selObj.options[selObj.selectedIndex].value!= "Dummy") {
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
}

function MM_jumpMenuGo(selName,targ,restore){ //v3.0
var selObj = MM_findObj(selName);
if (selObj) MM_jumpMenu(targ,selObj,restore);
}

orion_rus

8:35 am on Dec 21, 2004 (gmt 0)

10+ Year Member



type a code of this function yet please:
MM_findObj(selName);

MountainMan

5:24 pm on Dec 21, 2004 (gmt 0)

10+ Year Member



Yeah putting that code up also would have helped. Sorry about that.

Here it is:

function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

rocknbil

6:15 pm on Dec 21, 2004 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Macromedia-generated Javascript has always been too bloated and convoluted for my taste. The solution I've always used it to rip it all out and use something simpler. Additionally, if you're going to do this with Javascript you don't even need a button:

<form name="form1">
<select name="FishandGame" onChange="myWindow(this.form);">
<option value="Dummy" selected>Select State</option>
<option value="http://www.dcnr.state.al.us/">Alabama</option>
</select>
</form>

<script language="javascript">

function myWindow(form) {

var ind,url,day,id,params,win;

ind = form.FishandGame.selectedIndex;
if (ind==0) { return; }
url = eval('form.FishandGame.options['+ind+'].value');
day = new Date();
id = day.getTime();
params = 'width=600,height=500,resizable,scrollbars';
win = open (url,id,params);

}
</script>

It may be limited but has more flexibility than anything that begins with MM_ . . . .

MountainMan

7:13 pm on Dec 21, 2004 (gmt 0)

10+ Year Member



Thanks,

I appreciate the help. I'll give it a try.

Matt