webForumDet fria alternativet

Får inte länkar i lager att fungera

JavaScript

1 svar · 149 visningar · startad av mangan

Medlem sedan feb. 2003216 inlägg
Frågan#1

Hej!

Har gjort en liten testsida för att testa ett lager som ändrar länkar beroende på om dom finns eller inte. Problemet är att jag inte kan få länkarna att gå någonstans fastän jag tycker det ser rätt ut. Misstänker att det har något med mitt layer att göra.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Formtest</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--

var kundnr_arr = new Array("C00001","C12002","C10003");
var string;

function test(layerId)
{
	var fieldContent = document.form1.searchfield.value.toUpperCase();
	string = "";
	for(i=0;i<kundnr_arr.length;i++){
		if(kundnr_arr[i].search(fieldContent) >= 0){
			string += "<a href=\"formtest.php?kundnr=" + kundnr_arr[i] +  "\">" + kundnr_arr[i] + "</a><br>"; 
		}

	}
	string += "<a href=\"http://www.hotmail.com\">hotmail</a><br>";
	document.all[layerId].innerHTML = string;
	MM_showHideLayers(layerId,'','show');
	
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

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;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}
//-->
</script>
</head>

<body>
<div id="Layer1" style="position:absolute; left:9px; top:80px; width:173px; height:26px; z-index:1; visibility: hidden; background-color: #FFFF99; layer-background-color: #FFFF99; border: 1px none #000000;"> 
  tjo hej 
  <script language="JavaScript" type="text/JavaScript">
<!--
//-->
</script>
</div>
<form name="form1" method="post" action="">
  <input name="searchfield" type="text" id="searchfield" onKeyDown="MM_showHideLayers('Layer1','','hide')" onKeyUp="test('Layer1')" onfocusout="MM_showHideLayers('Layer1','','hide')">
</form>
</body>
</html>

La in en testlänk till hotmail.com för att prova om det var ngt fel på hur jag skrev adressen men den funkar inte heller. Som ni ser så har jag gjort en del i DreamWeaver. Min funktion heter test

PS. Börja fylla i fältet med 'c'. DS.

Medlem sedan feb. 2003216 inlägg
#2

Ok, lyckades hitta felet själv. Det hela berodde på att jag satte visibility=hide på lagret så fort fokusen hamnade på det.

<form name="form1" method="post" action="">
  <input name="searchfield" type="text" id="searchfield" onKeyDown="MM_showHideLayers('Layer1','','hide')" onKeyUp="test('Layer1')" [b]onfocusout="MM_showHideLayers('Layer1','','hide')"[/b]>
</form>

Tog ett tag att hitta men men. Hoppas det hjälper någon att undvika samma misstag iaf.

259 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)