Problema Firebird
3 seguidores
Se que muchos trabajais con Firebird.
Yo me he puesto a controlar una web que estamos haciendo en el curro y tengo un problemilla.
En explorer va una instrucción tipo:
<code>
<script type="text/javascript">
document.write(getNavegacion());
</script>
</code>
esta función tiene un return variable que es lo que explorer escribe. ¿Esto no funciona en Firebird?
meddle
deberia. ¿que hay en getNavegacion() exactamente?
cbp
¿y qué problema tienes en el Firebird?
sgiraldo
pues tengo....
<code>
if(idioma!=""){
dirimg = "../images/" + idioma + "/";
dirurl = "../" + idioma + "/";
dirlang = "../"
lang = idioma
}
else{
dirforo = "../"
lang = "esp"
dirimg = "images/";
dirurl = ""
dirlang = ""
}
if(seccion){
nav_superior += '<td bgcolor="#000000"><a href="default.htm" onmouseover="rollover(\'inicio\',\'on\')" onmouseout="rollover(\'inicio\',\'off\')"><img src="' + dirimg + 'bt_inicio_off.gif" height="21" border="0" alt="" name="inicio"></a></td>'
+ '<td bgcolor="#000000"><img src="' + dirimg + 'pix_trans.gif" border="0" alt="" width=1 height=1></td>'
}else{
nav_superior += '<td bgcolor="#000000"><img src="' + dirimg + 'pix_trans.gif" border="0" alt="" width=14 height=1></td>'
cont = 0
nav_superior += '<td bgcolor="#000000"><table border=0 cellpadding=0 cellspacing=0>'
for(j=0;j<idiomas.length;j++){
if(lang!=idiomas[j]){
if(idiomas[j]=="esp"){
urldefault = ".."
}else{
urldefault = dirlang + idiomas[j]
}
nav_superior += '<td bgcolor="#000000"><a href="' + urldefault + '/default.htm" onmouseover="rollover(\''+idiomas[j]+'\',\'on\')" onmouseout="rollover(\''+idiomas[j]+'\',\'off\')"><img src="' + dirimg + 'bt_'+idiomas[j]+'_off.gif" height="21" border="0" alt="" name="'+idiomas[j]+'"></a><br></td>'
if(cont==0){
if(idioma!=""){
nav_superior += '<td bgcolor="#000000"><img src="../images/separator.gif" height="21" border="0" alt=""></a></td>'
}else{
nav_superior += '<td bgcolor="#000000"><img src="images/separator.gif" height="21" border="0" alt=""></a></td>'
}
}
cont++
}
}
nav_superior += '</table></td>'
}
if(seccion){
nav_superior += '<td width=566><table border=0 cellpadding=0 cellspacing=0 width=100%>'
}else{
nav_superior += '<td><table border=0 cellpadding=0 cellspacing=0>'
}
nav_superior += '<td><img width=1 height=21 src="' + dirimg + 'images/pix_trans.gif"><br></td>'
+ '<td valign="top">'
+ '<a href="' + dirurl + 'actualidad.asp" onmouseover="rollover(\'actualidad\',\'on\',ns)" onmouseout="rollover(\'actualidad\',\'off\',ns)"><img src="' + dirimg + 'bt_actualidad_off.gif" height="21" border="0" alt="" name="actualidad"></a>'
+ '<a href="' + dirurl + 'calendario.asp" onmouseover="rollover(\'calendario\',\'on\',ns)" onmouseout="rollover(\'calendario\',\'off\',ns)"><img src="' + dirimg + 'bt_calendario_off.gif" height="21" border="0" alt="" name="calendario"></a>'
+ '<a href="javascript:preMove(0)" onmouseover="rollover(\'instituciones\',\'on\',ns)" onmouseout="rollover(\'instituciones\',\'off\',ns)"><img src="' + dirimg + 'bt_instituciones_off.gif" height="21" border="0" alt="" name="instituciones"></a>'
+ '<a href="' + dirurl + 'documentacion.htm" onmouseover="rollover(\'documentacion\',\'on\',ns)" onmouseout="rollover(\'documentacion\',\'off\',ns)"><img src="' + dirimg + 'bt_documentacion_off.gif" height="21" border="0" alt="" name="documentacion"></a>'
+ '<a href="' + dirurl + 'links.asp" onmouseover="rollover(\'links\',\'on\',ns)" onmouseout="rollover(\'links\',\'off\',ns)"><img src="' + dirimg + 'bt_links_off.gif" height="21" border="0" alt="" name="links"></a>'
+ '<a href="' + dirurl + 'contact.htm" onmouseover="rollover(\'contacte\',\'on\',ns)" onmouseout="rollover(\'contacte\',\'off\',ns)"><img src="' + dirimg + 'bt_contacte_off.gif" height="21" border="0" alt="" name="contacte"></a>'
+ '</td>'
+ '</table></td>'
+ '<td bgcolor="#B2B2B2"><img src="images/pix_trans.gif" width="1" height="1" border="0" alt=""></td>'
return nav_superior;
</code>
tengo unos controles de si(variable)... puede ser eso?
cbp
ya, ¿pero qué es lo que hace o no, o lo que hace mal el firebird?
meddle
varias cosas:
¿donde has definido nav_superior?
border=0 cellpadding=0 y etc deben ir entre comillas.
¿seguro que todo eso lo tienes que hacer via javascript? ¿No puedes hacerlo en el servidor?
sgiraldo
todo este contenido forma parte de un js externo.
Encima de esta funcion, está definida nav_superior.
Lo de las comillas... ¿por eso no debería de decirme "undefined", no?
meddle
asi a bote pronto...
abre Tools>JS Console. A ver que te dice EXACTAMENTE. Ve a esa linea y mira que hay. Suele estar el error.
¿donde defines el array idiomas? En general me parece que puede ser un problema de scope. ¿Puedes poner el codigo entero?
Truco: cuando hagas loops define la variable dentro:
<code>for(var i=0;i<idiomas.length; i++) {...}</code>
cbp
¿nav_superior está definida fuera de cualquier función? ¿y la variable idioma?
sgiraldo
El código entero:
<code>
ar inicio = 0;
var foro;
var idiomas = "esp|cat|eng"
idiomas = idiomas.split("|");
var ns;
if(!document.all){ns = document.menuMarc.document.menuContent}
var nav_superior = ""
function preMove(i){
if(inicio==1){
moveIt(i)
}
}
function getNavegacion(){
if(idioma!=""){
dirimg = "../images/" + idioma + "/";
dirurl = "../" + idioma + "/";
dirlang = "../"
lang = idioma
}
else{
dirforo = "../"
lang = "esp"
dirimg = "images/";
dirurl = ""
dirlang = ""
}
if(seccion){
nav_superior += '<td bgcolor="#000000"><a href="default.htm" onmouseover="rollover(\'inicio\',\'on\')" onmouseout="rollover(\'inicio\',\'off\')"><img src="' + dirimg + 'bt_inicio_off.gif" height="21" border="0" alt="" name="inicio"></a></td>'
+ '<td bgcolor="#000000"><img src="' + dirimg + 'pix_trans.gif" border="0" alt="" width=1 height=1></td>'
}else{
nav_superior += '<td bgcolor="#000000"><img src="' + dirimg + 'pix_trans.gif" border="0" alt="" width=14 height=1></td>'
cont = 0
nav_superior += '<td bgcolor="#000000"><table border=0 cellpadding=0 cellspacing=0>'
for(j=0;j<idiomas.length;j++){
if(lang!=idiomas[j]){
if(idiomas[j]=="esp"){
urldefault = ".."
}else{
urldefault = dirlang + idiomas[j]
}
nav_superior += '<td bgcolor="#000000"><a href="' + urldefault + '/default.htm" onmouseover="rollover(\''+idiomas[j]+'\',\'on\')" onmouseout="rollover(\''+idiomas[j]+'\',\'off\')"><img src="' + dirimg + 'bt_'+idiomas[j]+'_off.gif" height="21" border="0" alt="" name="'+idiomas[j]+'"></a><br></td>'
if(cont==0){
if(idioma!=""){
nav_superior += '<td bgcolor="#000000"><img src="../images/separator.gif" height="21" border="0" alt=""></a></td>'
}else{
nav_superior += '<td bgcolor="#000000"><img src="images/separator.gif" height="21" border="0" alt=""></a></td>'
}
}
cont++
}
}
nav_superior += '</table></td>'
}
if(seccion){
nav_superior += '<td width=566><table border=0 cellpadding=0 cellspacing=0 width=100%>'
}else{
nav_superior += '<td><table border=0 cellpadding=0 cellspacing=0>'
}
nav_superior += '<td><img width=1 height=21 src="' + dirimg + 'images/pix_trans.gif"><br></td>'
+ '<td valign="top">'
+ '<a href="' + dirurl + 'actualidad.asp" onmouseover="rollover(\'actualidad\',\'on\',ns)" onmouseout="rollover(\'actualidad\',\'off\',ns)"><img src="' + dirimg + 'bt_actualidad_off.gif" height="21" border="0" alt="" name="actualidad"></a>'
+ '<a href="' + dirurl + 'calendario.asp" onmouseover="rollover(\'calendario\',\'on\',ns)" onmouseout="rollover(\'calendario\',\'off\',ns)"><img src="' + dirimg + 'bt_calendario_off.gif" height="21" border="0" alt="" name="calendario"></a>'
+ '<a href="javascript:preMove(0)" onmouseover="rollover(\'instituciones\',\'on\',ns)" onmouseout="rollover(\'instituciones\',\'off\',ns)"><img src="' + dirimg + 'bt_instituciones_off.gif" height="21" border="0" alt="" name="instituciones"></a>'
+ '<a href="' + dirurl + 'documentacion.htm" onmouseover="rollover(\'documentacion\',\'on\',ns)" onmouseout="rollover(\'documentacion\',\'off\',ns)"><img src="' + dirimg + 'bt_documentacion_off.gif" height="21" border="0" alt="" name="documentacion"></a>'
+ '<a href="' + dirurl + 'links.asp" onmouseover="rollover(\'links\',\'on\',ns)" onmouseout="rollover(\'links\',\'off\',ns)"><img src="' + dirimg + 'bt_links_off.gif" height="21" border="0" alt="" name="links"></a>'
+ '<a href="' + dirurl + 'contact.htm" onmouseover="rollover(\'contacte\',\'on\',ns)" onmouseout="rollover(\'contacte\',\'off\',ns)"><img src="' + dirimg + 'bt_contacte_off.gif" height="21" border="0" alt="" name="contacte"></a>'
+ '</td>'
+ '</table></td>'
+ '<td bgcolor="#B2B2B2"><img src="images/pix_trans.gif" width="1" height="1" border="0" alt=""></td>'
return nav_superior;
}
</code>
sgiraldo
encontrado!
<code>
if(!document.all){ns = document.menuMarc.document.menuContent}
</code>
es en la manera de acceder a esta capa
cbp
me alegro, hombre :D
sgiraldo
en otra linea tengo:
<code>
if(document.all)
{
var menu = menuContent.style
}else if(!window.getComputedStyle){
var menu = document.menuMarc.document.menuContent
}
if(window.getComputedStyle){
alert(window.getComputedStyle(document.getElementById("menuContent"),null).top)
}else{
menu.top = 0;
}</code>
intento modificar el top 0.
Poniendo lo que está en el alert, fuera de él e igualando un valor... me da un error el Firebird.
¿sabeis pq?
meddle
getComputedStyle es para leer estilos que no han sido asignados por javascript, creo que tu quieres asignar un estilo, por lo tanto solo te haria falta:
if(document.getElementById) document.getElementById("menuContent").style.top = 0;
sgiraldo
gracias nuevamente meddle.