2011-01-18 15 views
7

Harici sayfada bulunan DIV'nin innerHTML dosyasını almaya çalışıyorum. Bu tür javascript kodu kullanarak bunu yapmak mümkün mü? Güvenlik sorunları nedeniyle html'yi harici bir html'den alamıyorsunuzdur.Dış sayfadan innerhtml'yi Javascript ile alın

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

cevap

6

jquery yük fonksiyonu element id

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

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

+0

İlk başta bunu yazmaya başladım, ama o öğeyi yüklememek için HTML istediğini düşündüm. – scragz

0

Yalnızca html'yi aynı etki alanında bulunan bir kareden alabilirsiniz.

0

İstediğinizi yapmak mümkündür, ancak önce ilk dıştan XMLHttpRequest'u kullanarak harici HTML dosyasını almanız gerektiğini söyleyebilirim. JQuery kullanıyorsanız gibi görünüyor yana

2

, böyle bir şey oldukça yakın olmalıdır:

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

Sen, bir gizli elemanı oluşturmak olduğunu içine sayfayı yüklemek ve daha sonra bulmak dalmak olabilir senin içeriği.

$(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

oldukça yük belirlemenizi sağlar. Sadece istenen sayfa aynı etki alanında ve aynı protokolde bulunuyorsa, bunu bir iframe içine gömmeye çalışabilir veya ajax kullanabilirsiniz. jQuery zaten bir dış sayfanın yalnızca bir kısmını ajax:
$.get(url+"#"+id); aracılığıyla bir şekilde uygulamıştır, burada id div kimliğidir. böylece bir şeyiniz olur:

 
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]);} 
); 

İlgili konular