Dichoso IE y su dichosa Ventanita de seguridad

Hola buenas¡
Acabo de subir mi web al servidor (IIS), en dicha web utilizo este código, que obtiene un archivo XML para mostrar un RSS de noticias, el problema que tengo es con IE en general 7 y 6 ya que en local me sacaba dicha ventanita amarilla de que se va ejecutar un script o control ActiveX, y me lo bloqueaba hasta que le daba permiso, me imagine que esto era por que estaba en local, pero al subir me pasa lo mismo, ya que unicamente funciona si agrego la url de dicho sitio como sitio web de confianza.
function Replace(totalValue,oldValue,newValue)
{
    while(totalValue.indexOf(oldValue) > -1)
        totalValue=totalValue.replace(oldValue,newValue);
            return totalValue;
}
/* Get XML Node
   (Parameters) TagName:'XML Element' node:'Element row number' */
function getNode(TagName, node)
{
    var currentNode = (node == null) ? XmlDoc.getElementsByTagName(TagName) :
                    items[node].getElementsByTagName(TagName);
    if(currentNode.length > 0)
        return currentNode[0].firstChild.nodeValue;
}
/* Load XML Object
   (Parameters) rssFeed:'RSS File' Body:'Layer for RSS Body' Title:'Layer for RSS Title' */
function ReadRSS(rssFeed, Body, Title)
{
    rssTitle = document.getElementById(Title);    
    rssBody = document.getElementById(Body);
    try
    {
        if (document.all)
        {
            var errorHappendHere = "Check Browser and security settings";
            xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        }
        else
        {
            var errorHappendHere = "Apparently one cant read remote xml via firefox, please copy the file to your server";
            xmlDoc = document.implementation.createDocument("","",null);
        }
        xmlDoc.async=false;
        xmlDoc.load(rssFeed);
        items=xmlDoc.getElementsByTagName('item');
        SetRSSTemplates();
    }
    catch(e)
    {
        rssTitle.innerHTML = 'Error occured';
        rssBody.innerHTML = 'Thrown Error:'+e.message+"<br/>Note: "+errorHappendHere;
    }
}
/* Set HTML Template
    Did it this way to make the look and feel of the feed easy customizable, dont like mixing
    layout with code. */
function SetRSSTemplates()
{
    if (rssBody)
    {
        var buffer = "";
        for(var i=0; i< items.length; i++)
        {
            var output = (document.all) ? Replace(rssBody.innerHTML,"(::Link::)",getNode('link',i))
                                       : Replace(rssBody.innerHTML,"%28::Link::%29",getNode('link',i));
            output = Replace(output,"(::Title::)",getNode('title',i));
            output = Replace(output,"(::Pubdate::)",getNode('pubDate',i));
            output = Replace(output,"(::Description::)",getNode('description',i));
            buffer+=output;
        }
        rssBody.innerHTML = buffer;
    }
    if (rssTitle)
    {
        var output = Replace(rssTitle.innerHTML,"(::Title::)",getNode('title'));
        output = (document.all) ? Replace(output,"(::Link::)",getNode('link'))
                               : Replace(output,"%28::Link::%29",getNode('link'));        
        output = Replace(output,"(::Description::)",getNode('description'));
        rssTitle.innerHTML = output;
    }
}
He probado a poner esta linea, no me saca la dichosa ventanita pero el código me saca un error de Acceso Denegado:
<!-- saved from url=(0013)about:internet -->
He probado de todo, y no se como poder solventar esto, he estado en la página de la www3scholls.
http://www.w3schools.com/Xml/xml_to_html.asp
Y utilizan xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); que me imagino que sera lo que IE me bloquea, TENGO que firmar dicho controlador, como puedo hacer, ya que si no soluciono esto tendre que hacerlo de cero con JSP, conoces alguna alternativa con JSP, estoy desesperada espero que me puedas ayudar un saludo¡
Respuesta
1
Si mis conocimientos no me engañan eso que estas manejando es javascript eso no tiene nada que ver con tu lenguaje de programación que estés usando ya que le estas solicitando que accesda a un activeX (Que problemático son esos) pues al utilizar dicha función no hay ninguna forma de que puedas quitar la barrita ni firmar el script (Cuestiones paranoicas de microsoft) pero en fin
Te recomiendo que veas otra forma de renderizar el XML que lo hagas vía Css seria lo más correcto
¿Me puedes explicar un poco mejor la opción que me comentas arriba de hacerlo con CSS?
De todas formas muchas gracias.
Si mira tu XML le vas a dar formato con CSS (cascade style sheet), puedes ver estos tutoriales que con ellos te podran explicar mas a detalle ue lo que yo pueda escribir aqui
http://geneura.ugr.es/~maribel/xml/css/index.html
http://www.w3schools.com/Xml/xml_display.asp
http://developer.apple.com/internet/webcontent/xmltransformations.html
Perdona que te vuelva a molestar, veras.. estuve mirando los tres enlaces que me has proporcionado, y la lo he entendido todo, pero tengo una duda bastante grande acerca de como implementarlo.. ya que para poder dar estilo al documento xml tengo que poner este encabezado:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet href="mi_fichero.css" type="text/css"?>
Pero no se como incluir esto en mi codigo html...
<div id="rss">
                      <marquee bgcolor="#9AA8BD" scrollamount="2" direction="up" loop="true" width="228" height="115" scrolldelay ="100" onMouseOver="this.stop()" onMouseOut="this.start()">
                           <justify>
<div id="articulos_noticias" >
                                   <b>
<script>document.write(daym+"/"+month+"/"+year+" ");</script>
+</b>
                                   <b style="color: #2E3852; font-family: Arial; font-size: 7pt; font-weight: bold">(::Title::)</b>
                                    <a href="(::Link::)" target="_top"><b> + info</b></a><br/><br/>
                                </div>
                          </justify>
                       </marquee>
     </div>
Esta es la forma en la que muestro con JS, pero no acabo de entender el procedimiento para meterle estilo al XML.
De todas formas muchas gracias¡
Lo ue pasa es que tienes ue darle propiedades para cada ID de su XML

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas