我正在尝试获取位于外部页面上的DIV的innerHTML。可以使用这种javascript代码执行此操作吗?
<script type="text/javascript">
$(document).ready(function(){
var html = document.getElementById("glr1").src='/my_page.html'.innerHTML ;
alert(html);
});
</script>
答案 0 :(得分:6)
jquery load函数允许您指定要加载的元素ID
$('#result').load('ajax/test.html #container');
答案 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]);}
);