2013-10-30 1 views
3

브라우저에서 단일 페이지로 여러 웹 사이트를 열어보고 싶은 클라이언트와 프로젝트를하고 있는데,이 목적으로 iframe을 사용했지만 openerp 프레임 중에 멈추었습니다. iframe에서도 openerp 화면도 설정했지만 문제는 생성 시간에 도달하자마자 고객을 만들 때 마법사가 열리지 않는다는 것입니다. iframe에 대한 대체 옵션은 무엇입니까?

코드의 일부

은 여기에 있습니다 : 내가 좋아하는 것
<iframe src="http://localhost:8069" name="mainFrame" > 

내가이 게시물이 발견 <iframe>

+5

iframe은 일반적으로 사용자 경험이 좋지 않습니다. 일반 HTML 요소를 사용하고 AJAX와 동적으로 내용을 변경하십시오.또한 [ask]를 읽고 [help]를 방문하는 것을 고려하십시오. 내가 올바르게 이해하면 질문을 더 잘 표현할 수 있습니다. "제게주십시오"는 일반적으로 여기 무례한 것으로 간주됩니다 - 문구 또한 귀하의 질문뿐입니다. –

+0

하지만 아약스를 사용할 때 존재하는 교차 도메인 문제에서 벗어나십시오. –

+0

이것을 확인하십시오. http://stackoverflow.com/questions/15146578/alternative-to-iframe-to-pull-in-actual-data-from-an -external-website-or-form –

답변

3

에 대한 대안의 알 - http://jsfiddle.net/rWwRL/

- 시도 가치가있을 수도 있습니다 Alternative to iFrames with HTML5

<object data="http://www.web-source.net" width="600" height="400"> 
    <embed src="http://www.web-source.net" width="600" height="400"> </embed> 
    Error: Embedded data could not be displayed. 
</object> 
1

나는 OU는 jQuery load를 사용할 수 있습니다

<div id="divId"></div> 
<script type='text/javascript'> 
    $(document).ready(function(){ 
     $('#divId').load(URL of target);  
    }); 
</script> 
1

당신이하면 iframe에 대한 대안으로 아약스 또는 jQuery를 사용할 수 있습니다. 나는 jQuery가 훨씬 더 간단하다고 느낀다. 다음과 같이 간단하게 구현할 수 있습니다.

$('#SampleElement').load('YourURL'); 

여기에서 SampleElement는 주어진 요소의 ID입니다.

3

자바 스크립트를 통해 브라우저에서 여러 웹 사이트에 액세스하는 기능은 보안상의 이유로 제한적입니다. 나는 자바 스크립트를 통해 다른 웹 페이지를 표시하는이 아이디어를 iframe imitator이라고 할 것입니다.

  1. 호스트 사이트 : 호스트 사이트에서, 간단한 아약스 요청을 할 수있는 iframe이 모방이 응용 프로그램을 위해, 나는 사이트의 세 가지 범주를 설정합니다. 이것은 아이의 물건입니다. (호스트 제외)
  2. 1 당 사이트 : 당신은 서버 구성 (또는 적어도 헤더를 수정할 수 있습니다), 당신의 호스트 사이트의 액세스 또는 Access-Control-Allow-Origin: * 수 있도록 헤더 Access-Control-Allow-Origin: "host site name here"를 지정해야합니다에 액세스 할 수있는 사이트에 모든 사이트의 액세스를 허용하십시오.
  3. 제 3 자 사이트 :에 타사 사이트의 사용자가 사이트의 Access-Control-Allow-Origin 헤더 *로 설정되어 있기를 바랍니다해야합니다 그렇지 않으면 예외를 확인하고 사이트의 액세스를 허용하는 사이트의 관리자를 설득해야합니다.

위의 조건 중 어느 것도 충족 할 수없는 경우 사용자의 브라우저 보안을 유지해야합니다. 일부 브라우저는 CORS (Cross Origin Resource Sharing)을 지원하지만 신뢰할 수는 없습니다. 일반적으로 사용자의 브라우저는 보안상의 이유로 특정 헤더에 대한 액세스를 차단하지만 브라우저가 지원을 제공하거나 보안이 충분하지 않은 경우 다른 사이트를 속여 액세스 할 수 있도록 헤더를 설정할 수 있습니다. (허용되는 경우) 일부는이 경계선 해킹을 고려할 수 있으며 관련 당사자의 허락 없이는 사용하지 않아야합니다.

$(document).ready(function(){ 
    var target_domain = "example.com"; 
    var protocol = "http://"; 
    var path = ""; //e.g. "/index.html" 
    var target_host = protocol + target_domain; 
    var target_URI = target_host + path; 
    var method = "GET"; 
    $.ajax({ 
     url: target_URI, 
     type: method, 
     headers: { 
      "X-Requested-With": "", //nullifies the default AJAX value of "XMLHttpRequest" 
      "Origin": target_host, //lies to the target server 
      "Referer": target_host, //lies to the target server 
      "X-Http-Method-Override": method, //forces the specified method 
     }, 
     crossDomain: "true" //applies cross domain settings 
    }); 
}); 
$(document).ajaxSuccess(function(){ 
    $("#iframe_imitator").html(xhr.responseText); 
}); 
관련 문제