2010-07-07 4 views
1

en fait je travaille sur ajax dans lequel je veux convertir le iframe en div signifie que quelle est la fonctionnalité de iframe je veux la même chose dans divComment remplacer iframe à div?

Merci.

+0

Pourquoi voudriez-vous faire cela? –

+2

@Jim, vous feriez mieux d'envoyer cela par email. –

+0

pourquoi ?? Les iframes ne sont pas amicaux SEO ... – galambalazs

Répondre

7

Vous ne pouvez pas avoir exactement la même fonctionnalité d'un iframe dans un div simple. C'est pourquoi ils ont deux noms différents. Iframe est un peu de sandboxing, et peut ouvrir des URL sur n'importe quel domaine.

Avec Ajax sur les navigateurs de nos jours, vous devez tenir à la politique d'origine qui signifie que vous ne pouvez charger le contenu du même domaine de votre site fonctionne sur.

Ainsi, en dehors de cette restriction et le fait que sandboxing iframe comme ne peut être émulée dans un div ici, est une solution simple ajax avec javascript, que vous pouvez utiliser pour achive une navigation sur le site, par exemple:

HTML

<ul id="nav"> 
    <li><a href="page1.html">page1</a></li> 
    <li><a href="page2.html">page2</a></li> 
    <li><a href="page3.html">page3</a></li> 
</ul> 

Javascript

// select the menu element 
var nav = document.getElementById("nav"); 

// watch for clicks on the menu 
nav.onclick = function(e) { 

    // get the element that was clicked 
    e = e || window.event; 
    var el = e.target || e.srcElement; 

    // only act if it was a link 
    if (el.nodeName == "A") { 

    // making a call is as simple as this 
    ajax(el.href, function(data) { 

     // do something with the server's response 
     // e.g.: put it to the #content element 
     document.getElementById("content").innerHTML = data; 
    }); 

    // prevent default action 
    return false; 
    } 
}; 

/////////////////////////////////////////////////////////////////////////////// 

function getXmlHttpObject() { 
    var xmlHttp; 
    try { 
     xmlHttp = new XMLHttpRequest(); 
    } catch (e) { 
     try { 
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); 
     } catch (e) { 
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
    } 
    return xmlHttp; 
} 

function ajax(url, onSuccess, onError) { 
    var xmlHttp = getXmlHttpObject(); 
    xmlHttp.onreadystatechange = function() { 
     if (this.readyState == 4) { 
      // onError 
      if (this.status != 200) { 
       if (typeof onError == 'function') { 
        onError(this.responseText); 
       } 
      } 
      // onSuccess 
      else if (typeof onSuccess == 'function') { 
       onSuccess(this.responseText); 
      } 
     } 
    }; 
    xmlHttp.open("GET", url, true); 
    xmlHttp.send(null); 
    return xmlHttp; 
}​ 

+0

@galambalazs, j'ai oublié de mettre la solution simple dans .. :) –

+0

@Gaby parce que je le piratage .. :) – galambalazs

+0

@galambalaz, pensé que ce serait le cas .. juste faire sûr –

2

@rajesh, Vous ne pouvez pas charger des pages Web externes via Ajax, sauf si vous placez un fichier JavaScript avec Ajax appelle sur le site où réside le contenu que vous souhaitez placer sur votre site Web dans la division. Donc, la seule façon pour vous est d'utiliser des Iframes.

+0

'" Donc la seule façon pour vous d'utiliser les Iframes. "- Comment savez-vous à quoi sert iframe? Pour les choses du même domaine ajax est génial. – galambalazs

+0

@galambalazs, vous semblez être joueur aujourd'hui. Je pourrais deviner que c'est pour obtenir quelque chose du site externe. – eugeneK

+0

Je suis toujours ludique. :) – galambalazs

Questions connexes