使用Javascript从外部页面获取innerhtml

时间:2011-01-18 20:10:53

标签: javascript jquery html

我正在尝试获取位于外部页面上的DIV的innerHTML。可以使用这种javascript代码执行此操作吗?

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

6 个答案:

答案 0 :(得分:6)

jquery load函数允许您指定要加载的元素ID

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

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

答案 1 :(得分:2)

因为看起来你正在使用jQuery,所以这样的东西应该非常接近:

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

答案 2 :(得分:2)

您可以创建一个隐藏的<iframe>元素,将页面加载到该元素中,然后深入其中以找到您的内容。

 $(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();
     }
   });
 });

答案 3 :(得分:0)

由于安全问题,您无法从外部html获取html。

您只能从位于同一域的框架中获取html。

答案 4 :(得分:0)

可以按照您的意愿行事,但我会说您必须首先使用XMLHttpRequest检索外部HTML文件。

答案 5 :(得分:0)

不太好。 只有当所需的页面位于同一个域和相同的协议上时,您才可以尝试将其嵌入到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]);}
);