使用 jquery load() 加载动态内容

问题描述 投票:0回答:3

jquery load() 可用于从另一个页面加载组件。

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

但是,如果

#container
包含一些动态加载的元素,则 load() 函数不会在
#result
元素内渲染这些动态组件。

例如:客户评论页面动态加载用户评论。因此,评论无法显示在

#result
元素内。

是否可以使用

load()
函数来实现此目的,或者是否有其他方法来实现此目的。

javascript jquery ajax
3个回答
2
投票

您遇到的一个问题是问题的这一部分:

源页面有一些动态加载的元素

一旦您解决了 CORS 及其同类问题,您所做的仍然是向远程服务器请求静态文件并渲染该文件。

但是,在源站点上,您几乎肯定会找到填充这些元素的其他脚本;这些脚本在源服务器上运行,但不会由您当前的代码执行。您需要在自己的站点上复制这些脚本的执行,包括拉取其他数据。

一个更简单的解决方案是询问源网站的所有者是否有外部可用的 API,这将允许您提取这些数据并自动呈现它。


1
投票

在 PHP 上,对于跨源,您可以获取如下元素:

//url
$url = 'https://url.com'; 

//get content from the URL
$cotnent = file_get_contents($url);

//disable errors
libxml_use_internal_errors(true);

//Load HTML
$dochtml = new DOMDocument();
$dochtml->loadHTML($cotnent);

//Get the ID that you want
$elm = $dochtml->getElementById('elementid');

if ($elm){
    //elm content
    echo $elm->nodeValue;
}

0
投票

为什么不使用

iframe
否则你需要管理这些网站,因为你需要编辑
.htaccess
并制作
allow-access

© www.soinside.com 2019 - 2024. All rights reserved.