Tengo un xml donde se coloca el alto y el ancho que debe tener la pagina html al abrir en el navegador, la cual tiene la siguiente codificacion:
Código :
<abc>
<nombreabc></nombreabc>
<cliente></cliente>
<estandar>scorm</estandar>
<!--estandar posibles valores:
cd, scorm, aicc
-->
<pantalla ancho="924" alto="668"></pantalla>
<!--resolucion pantalla:
opciones
700 x 500
924 x 668
-->
</abc>
Luego, tenemos la funcion para captar el valor del atributo pantalla en el html
Código :
function parsearXML(){
window.parent.xmlObj=window.parent.xmlDoc.documentElement;
window.parent.pantallaAncho =window.parent.xmlObj.getElementsByTagName('pantalla')[3].getAttribute('ancho') ;
window.parent.pantallaAlto =window.parent.xmlObj.getElementsByTagName('pantalla')[3].getAttribute('alto') ;
}
Creamos las variables window.parent.pantallaAncho y window.parent.pantallaAlto en el html para poder asignarle el atributo 'pantalla' del xml, luego se llama la funcion parsearXML que fue la que coloque anteriormente. La funcion se llama en la siguiente codificación para determinar que tipo de navegador es (IE o Firefox).
Código :
if(window.ActiveXObject){
//--- Creo un nuevo objeto de la librería Microsoft.XMLDOM que es la que se encarga
//--- en Internet Explorer de 'parsear' un archivo XML.
window.parent.xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
//--- Defino la asincronización a false
window.parent.xmlDoc.async = false;
window.parent.xmlDoc.load("ABC.xml");
parsearXML();//para Internet Explorer
//si no es IE el explorador
}else if(document.implementation && document.implementation.createDocument){
var window.parent.xmlDoc = document.implementation.createDocument("","doc",null);
window.parent.xmlDoc.load("ABC.xml");
//--- Le decimos que cuando haya terminado de cargar el XML
//--- ejecute la función de parsear el mismo.
//--- NOTA: Se le llama a la función sin los paréntesis. Si se le colocan no funciona
window.parent.xmlDoc.onload = parsearXML;//Para firefox Mozzila
}else{
alert ('Su navegador no puede soportar este script');
}
Luego, se hace la siguiente codificacion para que pueda abrir la pagina:
Código :
var cadena = document.location.search;
if (cadena != "") {
//si es IE
document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"\n'+
'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"\n'+ 'id="Examen" width=" '+window.parent.pantallaAncho +' "height=" '+window.parent.pantallaAlto +' ">\n'+'<param name="movie" value=base.swf'+document.location.search+'&OA='+ nombre +'&archivoxml='+ nombre +' />\n'+
'<param name="quality" value="high" />\n'+'<embed src=base.swf'+document.location.search+'&OA='+ nombre +'&archivoxml='+ nombre +' quality="high"pluginspage="http://www.macromedia.com/go/getflashplayer"\n'+'type="application/x-shockwave-flash" width=" '+window.parent.pantallaAncho+' " height=" '+window.parent.pantallaAlto +' " name="Examen"></embed>\n'+'</object>');
}
else{
//si es Firefox
document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"\n'+ 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"\n'+ 'id="Examen" width=" '+window.parent.pantallaAncho+' " height=" '+window.parent.pantallaAlto +' ">\n'+'<param name="movie"value=base.swf'+document.location.search+'?OA='+ nombre +'&archivoxml='+ nombre +' />\n'+'<param name="quality" value="high" />\n'+ '<embed src=base.swf'+document.location.search+'?OA='+ nombre +'&archivoxml='+ nombre +' quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer"\n'+'type="application/x-shockwave-flash" width=" '+window.parent.pantallaAncho+' " height=" '+window.parent.pantallaAlto +' " name="Examen"></embed>\n'+'</object>');
}
En la codificacion que coloque antes, colocamos los parametros de la pagina, es en donde usamos las variables para colocar el ancho y el alto, pero no funcionan, queria saber si estamos haciendo algo mal en el parseo de las variables del xml o algo asi..., por eso primero coloque la funcion parsearXML, espero que ahora si comprendas mas o menos a que me refiero.