Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia, gente.
Estou trabalhando num site de uma empresa e preciso fazer com que as paginas internas de cada secao abram numa DIV, como um iframe. Nao quero usar iframe, pesquisei no Google e achei uma solucao em Ajax. Funciona perfeitamente no site que contem a dica, mas nao funciona no meu site, pois o JavaScript acusa Access denied, Code: 0. A unica razao que encontrei pra esse erro no Google eh quando, por questoes de seguranca, o browser bloqueia o acesso ao arquivo devido ao mesmo estar em outro dominio ou protocolo, diferentes da pagina que estah chamando a funcao. Jah quebrei a cabeca aqui tentando resolver esse problema, mas nada que tento dah certo. A unica coisa que ainda nao tentei aparentemente foi a solucao pro problema.. =P
Gostaria de uma ajuda pra que eu possa solucionar isso, pois nao tenho mto tempo pra fazer esse site funcionar.
O codigo do script eh o seguinte:
var bustcachevar=1 //bust potential caching of external pages after initial request? (1=yes, 0=no)var loadedobjects=""var rootdomain="http://"+window.location.hostnamevar bustcacheparameter=""function ajaxpage(url, containerid){var page_request = falseif (window.XMLHttpRequest) // if Mozilla, Safari etcpage_request = new XMLHttpRequest()else if (window.ActiveXObject){ // if IEtry {page_request = new ActiveXObject("Msxml2.XMLHTTP")} catch (e){try{page_request = new ActiveXObject("Microsoft.XMLHTTP")}catch (e){}}}elsereturn falsepage_request.onreadystatechange=function(){loadpage(page_request, containerid)}if (bustcachevar) //if bust caching of external pagebustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()page_request.open('GET', url+bustcacheparameter, true)page_request.send(null)}function loadpage(page_request, containerid){if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))document.getElementById(containerid).innerHTML=page_request.responseText}function loadobjs(){if (!document.getElementById)returnfor (i=0; i<arguments.length; i++){var file=arguments[i]var fileref=""if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceedingif (file.indexOf(".js")!=-1){ //If object is a js filefileref=document.createElement('script')fileref.setAttribute("type","text/javascript");fileref.setAttribute("src", file);}else if (file.indexOf(".css")!=-1){ //If object is a css filefileref=document.createElement("link")fileref.setAttribute("rel", "stylesheet");fileref.setAttribute("type", "text/css");fileref.setAttribute("href", file);}}if (fileref!=""){document.getElementsByTagName("head").item(0).appendChild(fileref)loadedobjects+=file+" " //Remember this object as being already added to page}}}Notem que na 3a. linha, var rootdomain, eu troquei o http:// por file://, pois estou testando o site localmente.
Meus links que chamam essa funcao ficam assim:
<a href="java script:ajaxpage('home.html', 'content');">Home</a>O site onde achei a dica eh o Dynamic Drive.
Nao sei mais o que fazer, jah tentei varias formas diferentes e nada funciona.
Obrigada!
PS.: Apos testes, descobri que no Firefox o codigo funciona perfeitamente (eu nao tinha Ff aqui nesse laptop no momento dos primeiros testes). O problema eh no IE.
Carregando comentários...