jquery load() 可用于从另一个页面加载组件。
$( "#result" ).load( "ajax/test.html #container" );
但是,如果
#container
包含一些动态加载的元素,则 load() 函数不会在 #result
元素内渲染这些动态组件。
例如:客户评论页面动态加载用户评论。因此,评论无法显示在
#result
元素内。
是否可以使用
load()
函数来实现此目的,或者是否有其他方法来实现此目的。
您遇到的一个问题是问题的这一部分:
源页面有一些动态加载的元素
一旦您解决了 CORS 及其同类问题,您所做的仍然是向远程服务器请求静态文件并渲染该文件。
但是,在源站点上,您几乎肯定会找到填充这些元素的其他脚本;这些脚本在源服务器上运行,但不会由您当前的代码执行。您需要在自己的站点上复制这些脚本的执行,包括拉取其他数据。
一个更简单的解决方案是询问源网站的所有者是否有外部可用的 API,这将允许您提取这些数据并自动呈现它。
在 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;
}
为什么不使用
iframe
否则你需要管理这些网站,因为你需要编辑
.htaccess
并制作 allow-access