2010-07-07 5 views
1

실제로 나는 div로 divrame으로 iframe을 변환하고 싶은 아약스에서 일하고있다. iframe의 기능은 무엇인가? div에서 같은 것을 원한다.iframe을 div로 바꾸는 방법은 무엇입니까?

고마워.

+0

왜 이렇게할까요? –

+2

@ 짐, 이메일로 보내주십시오. –

+0

왜 ?? iframe은 SEO 친화적이지 않습니다 ... – galambalazs

답변

7

당신은 간단한 사업부에 iframe이의 정확한 동일한 기능을 사용할 수 없습니다. 그래서 두 가지 이름이 있습니다. Iframe은 샌드 박스의 일부이며 모든 도메인에서 URL을 열 수 있습니다. 요즘에 아약스

당신은 귀하의 사이트가 운영하는 동일한 도메인에서 내용을로드 할 수 있습니다 의미 동일 출처 정책을 고수해야하는 브라우저.

그래서, 옆이 제한와 iframe이 같은 샌드 박스는 여기 사업부에서 에뮬레이트 할 수 없다는 사실에서 , 당신은 예를 들어 사이트 탐색을 실현하려 사용할 수있는 자바 스크립트를 가진 간단한 아약스 솔루션입니다 :

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> 

자바 스크립트

당신이 아약스는 당신이 사업부의 웹 사이트에 배치 할 내용을있는 웹 사이트에 전화와 자바 스크립트 파일을 배치하지 않는
// 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는에 간단한 해결책을 넣어 잊었 .. :) –

+0

@Gaby를 내가 해킹 때문에 .. :) – galambalazs

+0

@galambalaz는 그런 경우가 될 것이라고 생각 ... 당신이 믿지 없습니다 @Gaby 단지 확인 –

2

@rajesh는, 당신은 Ajax를 통해 외부 웹 페이지를로드 할 수 없습니다. 그래서 당신을위한 유일한 방법은 Iframe을 사용하는 것입니다.

+0

''Iframe을 사용하는 유일한 방법 ''- iframe을 사용하여 무엇을 사용하고 있는지 어떻게 알 수 있습니까? 동일한 도메인의 경우 아약스는 훌륭합니다. – galambalazs

+0

@galambalazs, 오늘 장난기가있는 것 같습니다. 나는 그것이 외부 사이트로부터 뭔가를 얻는 것임을 짐작할 수있다. – eugeneK

+0

나는 항상 장난 스럽다. :) – galambalazs

관련 문제