2011-01-18 8 views
7

私は外部ページにあるDIVのinnerHTMLを取得しようとしています。これは、この種類のJavaScriptコードを使用してこれを行うことは可能ですか?Javascriptで外部ページからinnerhtmlを取得する

<script type="text/javascript"> 
     $(document).ready(function(){ 
      var html = document.getElementById("glr1").src='/my_page.html'.innerHTML ; 
      alert(html); 
     }); 
    </script> 

答えて

6

jqueryのロード機能を使用すると、

$('#result').load('ajax/test.html #container'); 

http://api.jquery.com/load/

+0

私は最初に書き始めましたが、私は彼がHTMLにしたいと思っていましたが、その要素を読み込まないと思っていました。 – scragz

0

セキュリティ上の問題により、外部HTMLからHTMLを取得することはできません。

同じドメインにあるフレームからのみHTMLを取得できます。

0

あなたが望むことは可能ですが、最初にXMLHttpRequestを使って外部HTMLファイルを取得する必要があると思います。

2

あなたはjQueryのを使用しているように見えるので、このようなものはかなり近いはずである。

var html; 
$.get("my_page.html", function(data){ 
    html = $(data).find('#glr1').html(); 
}); 
2

あなたは、隠された要素を作成することにページをロードした後、あなたを見つけるために、それに飛び込むことができコンテンツ。

$(function() { 
    $('body').append($('<iframe></iframe>', { 
    css: { display: none }, 
    src: 'my_page.html', 
    id: 'my_mage', 
    load: function() { 
     var html = $('#my_page').contents().find('whatever').html(); 
    } 
    }); 
}); 
0

なく、かなりをロードするための要素のIDを指定することができます。 希望のページが同じドメインと同じプロトコル上にある場合にのみ、iframeに埋め込むか、ajaxを使うことができます。 jQueryは、ajax:
$.get(url+"#"+id);のような外部ページの一部のみを取得する方法を既に実装しています。ここで、idはdivのIDです。

 
var aux = window.location.href.split('/'), 
id = 'glr1', 
page = 'my_page.html'; 
$.get(
    aux.splice(0,aux.length-1).join('/') + '/' + page + '#' + id, 
    function(){alert(arguments[0]);} 
);