当前位置: 首页 > 面试题库 >

使用jQuery将具有相对路径的外部HTML页面加载到DIV中

上官高翰
2023-03-14
问题内容

如果这个问题太简单,我对jQuery和赦免还是比较陌生的,但是我搜索了多个线程数小时,无法找到确切的解决方案。

我具有以下文件夹结构:

/index.html

/html/pages/page1.html
/html/pages/images/
/html/pages/css/
/html/pages/js/
/html/pages/includes/

我正在尝试通过以下基本方式将 page1.html 加载到 index.html 中的DIV中:

$('#content').load('html/pages/page1.html', function () {
   console.log('loaded');
});

page1.html可以很好地 加载,但是它由多个包含组成,并且其中的所有内容(图像,CSS,JS等)都相对于 页面 文件夹(例如:
../ images / header.jpg ),因此加载到 index.html 时不会显示,因为现在所有内容都相对于 /
index.html

我在某处读到,使 page1.html中的 所有路径都是绝对路径或相对于根目录
可以工作,并且还添加了某种全局路径变量,但是,问题是遗留内容过多,并且不能全部更改。

有没有一种方法可以加载 如上所述的page1.html
而不修改任何路径,尽管它们是相对的?还是有人可以推荐一种以这种方式加载外部内容的有效方法(其他插件,技术)?

谢谢!


问题答案:

如果一切 是相对于
pages文件夹,那么你可以使用一些简单的搜索和替换。这不是最佳的编程实践,因为它不够灵活(在这种类型的上下文中从相对变为绝对依赖于许多因素才能正常工作),但它确实可以工作。

$.get('html/pages/page1.html', {}, function(data, status, xhr) {
    var updatedData = data.replace(/\.\.\/(images|css|js)+/g, "http://www.mywebsite.com/html/$1");

    $('#content').html(updatedData);
});

编辑:

您也可以使用代理脚本,并将对此文件夹的所有请求重写/路由到代理脚本。我不知道您正在使用什么服务器端技术,但是您可以这样做:

使用.htaccess(或类似方法),将所有定向到该文件夹​​的请求重定向到您的代码库中的另一个脚本。在脚本中,查找脚本输入的路径,加载原始输出内容,执行搜索/替换并将内容输出到缓冲区。此外,您可以在服务器上设置缓存,以便客户端可以缓存请求,从而降低了您可能会遇到的处理开销(尽管我预计这样做的开销会很小)。



 类似资料:
  • 问题内容: 我试图做到这一点,所以当我单击HTML页面中的链接时,它会动态地将请求的页面加载到jQuery的div中。 我怎样才能做到这一点? 问题答案: 那里有一个叫做pjax的jQuery插件,它指出:“它是带有真正的永久链接,页面标题和完全退化的后退按钮的ajax。” 该插件使用HTML5 pushState和AJAX来动态更改页面,而无需完全加载。如果不支持pushState,则PJAX将

  • 问题内容: 有没有办法做到这一点? page1.php-有 index.php-有 我可以以某种方式从div内部的page1.php中获取数据并将其加载到index.php中的div中吗? 我已经使用css-tricks网址中提供的代码完成了此操作:http : //css- tricks.com/examples/DynamicPage/ 但这使用哈希更改事件。我不想使用哈希功能,而只想使用加载

  • 我试图使用axios将一个外部url加载到使用vuejs的div中,我得到了 CORS策略阻止了从origin访问在处的XMLHttpRequest:请求的资源上没有'Access-Control-Allow-Origin'标头。 我错过了什么? 堆栈跟踪: CORS策略阻止从来源“http://localhost:8080”访问位于“https://pay.stripe.com/receipts

  • 问题内容: 我的页面上有一个div: 如何使div滚动到div的底部?不是页面,只有DIV。 问题答案: 此处的其他解决方案实际上不适用于内容很多的div -它“最大化”向下滚动到div的高度(而不是div 内容 的高度)。因此,它们将起作用,除非您在其内容中具有div高度的两倍以上。 这是正确的版本: 或jQuery 1.6+版本: 或动画:

  • 问题内容: 如果不使用iframe,则可以加载以下内容: 与外部站点,例如somesitehere.com 页面何时加载?-我知道如何从文件加载内容,但是不确定如何加载整个网站吗? 非常感谢, 问题答案: 无需专门的操作就可以做到。由于标题中提到了jQuery,因此使用了jQuery。

  • 我只是在尝试IntelliJ IDE,我想在java项目中添加一个外部jar。 我已经在