Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Javascript访问另一个页面';s元素?_Javascript_Html_Css - Fatal编程技术网

如何使用Javascript访问另一个页面';s元素?

如何使用Javascript访问另一个页面';s元素?,javascript,html,css,Javascript,Html,Css,假设我有一个页面a.html,并希望使用它的idname从另一个页面b.html检索文本元素的文本,使用jQuery,这非常简单: $.get('a.html', null, function(text){ alert($(text).find('#name')); }); 原始XHR请求(按大众需求): 如果页面位于同一域中,则可以使用jQuery.ajax()或jQuery.load() 您需要: 获取页面内容(您暗示这不会是一个问题,所以我不会讨论如何解决这个问题) 将其解析为H

假设我有一个页面
a.html
,并希望使用它的id

name

从另一个页面
b.html

检索文本元素的文本,使用jQuery,这非常简单:

$.get('a.html', null, function(text){
    alert($(text).find('#name'));
});
原始XHR请求(按大众需求):


如果页面位于同一域中,则可以使用jQuery.ajax()或jQuery.load()

您需要:

  • 获取页面内容(您暗示这不会是一个问题,所以我不会讨论如何解决这个问题)
  • 将其解析为HTMLDOM
  • 提取您关心的DOM部分
  • 用那个DOM做点什么
  • 这是相当多的工作。将为您完成大部分工作:

    jQuery('#element_to_load_content_into').load('a.html#name'); // Note use of fragment identifier
    

    iframe
    请求页面,然后获取元素。但是你不想让服务器返回你想要的数据吗?@kmb385的可能重复:只要第二个页面在同一个域上,这是完全可行的。因为你没有要求jQuery,需要注意的是,您不需要要求用户下载和评估整个jQuery库来获得简单的XHR支持。jQuery没有
    $。load
    方法,仅仅为了一个简单的XHR请求而加载一个大型库未免太过分了。@user1689607真的吗?!如果客户端浏览器的缓存中已经有jQuery,这是不是太过分了?@Xander:你怎么知道它是否在缓存中?@user1689607-错。虽然仅仅发出一个XHR请求可能有些过分,但这并不是发出一个XHR请求,从生成的HTML文档中提取数据,然后将数据添加到当前页面的DOM中。当然,如果OP有其他用途,那么它可能值得下载,但我不会太快地假设缓存的可能性如此之高。同样,每个CDN都有几十个版本。有很多网站使用一个旧版本(甚至可能是一个未统一的版本)。所以这真的是一帆风顺。@Prathamesdoke-自从我写下这个答案以来,没有什么根本性的改变。这“加载”了一个网页的一部分,我看到很多主体元素不存在于我加载内容的元素中。知道如何让它加载所有内容吗?@Shayan-我不知道你在做什么,也不知道你在处理什么数据。试着问一个新问题,并参考上下文。
    $.ajax({
      url: url,
      data: data,
      success: success,
      dataType: dataType
    });
    
    jQuery('#element_to_load_content_into').load('a.html#name'); // Note use of fragment identifier