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¡
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 de jakoujan
1