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

时间:2018-04-16 11:02:30

标签: javascript jquery ajax

jquery load()可用于从其他页面加载组件。

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

但如果#container包含一些动态加载的元素,则load()函数不会在#result元素中呈现这些动态组件。

Ex:客户评论页面动态加载用户评论。因此,评论无法在#result元素中显示。

是否可以使用load()函数来实现此目的,或者是否有其他方法可以实现此目的。任何帮助都会有所帮助。

(请在下载问题之前发表评论。这对我来说有助于改进这个问题)

由于

干杯

3 个答案:

答案 0 :(得分:2)

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

  

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

一旦你解决了CORS及其类似问题,你所做的一切仍然是向远程服务器询问静态文件并进行渲染。

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

更简单的解决方案是询问源站点的所有者是否有外部可用的API,这样您就可以将这些数据拉过来并自动呈现。

答案 1 :(得分: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;
}

答案 2 :(得分:0)

为什么不使用iframe,否则您需要对这些网站进行管理,因为您需要进行编辑 .htaccess并制作allow-access