2011-03-23 5 views
0

URL을 제공하기 위해 FireShot API와 통합하려고 시도 중입니다. 다른 웹 페이지의 HTML을 div로 가져 와서 div의 스크린 샷을 찍습니다. 내가하려고 할 때jQuery를 사용하여 다른 웹 페이지의 HTML을 div로 가져올 수 있습니까?

내가 <div>

그러나 첫째로 <head>

  • 잡아 <body>에서 HTML

    • 잡아 <link> & <script>을받은 후해야 할 몇 가지 일들이 보인다 a

      $.get("http://google.com", function(data) { ... }); 
      

      나는 붉은 색의 불 덩어리로 200을 얻는다. JS와 함께 자신의 페이지를 잡을 수없는 사이트와 관련이 있다고 생각하십니까? 그럼 내가 할 수있는 최선의 창문을 여는거야? 하지만 jQuery를 사용하여 다른 페이지를 제어하거나 해당 페이지에서 fsapi를 호출하는 방법은 무엇입니까?

      UPDATE

      나는 새 윈도우가 준비되면 뭔가를 아래와 같이 뭔가를하려고했으나 방화 광은 내가 믿는

      w = window.open($url.val()); 
      setTimeout(function() { // if I dont do this, I always get about:blank, is there a better way around this? 
          $(w.document).ready(function() { 
           console.log(w.document.body); 
          }); 
      }, 1000); 
      
  • +0

    여러 사람들이 대답 했으므로이 문제는 웹 브라우저에서 명시 적으로 허용하지 않았습니다. Javascript는 다른 도메인의 콘텐츠에 액세스하는 데 사용할 수 없습니다. 브라우저는 Ajax를 통해 이러한 시도를 차단할뿐만 아니라 다른 프레임 또는 창에 다른 도메인의 컨텐트가 포함되어있는 경우 JavaScript 코드가 다른 프레임이나 창을 읽지 못하도록 차단합니다. –

    답변

    2

    "권한이 '문서를'속성에 대한 액세스를 거부되었습니다"라고 Javascript 내의 교차 사이트 보안 설정은 기본적으로이를 차단합니다. 자신의 도메인을 통해 콘텐츠를 프록시해야 할 가능성이 높습니다.

    사이트 간 보안 제약을 없애기위한 몇 가지 다른 옵션이 있습니다. 그러나이를 홍보 할 것인지 확실하지 않습니다.

    1

    맞지 않으면 AJAX 페이지 교차 도메인 (예 : domain1.com에서 domain2.com)을 할 수 있다고 생각하지 않습니다. 이 문제를 해결하기 위해 페이지를 "가져 오는"PHP를 "프록시"스크립트로 사용하여 JS로 전달할 수 있습니다.

    예를 들어 JS에서() http://mydomain.com/get/?domain=http://google.com을 얻은 다음 수행해야 할 작업을 수행 할 것입니다.

    +0

    흠 나는 1 옵션이라고 생각한다. 가능한 한 JS를 사용하는 것이 가장 좋을 것이라고 생각하고있다. 훨씬 빠를 것이다. –

    2

    "다른 페이지"가 ​​호스팅 페이지의 동일한 도메인 내에있는 경우 가능합니다. jQuery의 $().load() API를 참조하십시오.

    그렇지 않으면 브라우저의 교차 사이트 보안 정책에 의해 금지됩니다. 이 순간에 DIV 대신 iFrame을 사용할 수 있습니다.

    일부 jQuery 플러그인 (예 : thickbox는 적절한 컨테이너에 페이지를 자동으로로드하는 기능을 제공합니다.

    관련 문제