【问题标题】:loading external file with css intact?加载完整的css外部文件?
【发布时间】:2026-02-23 20:25:02
【问题描述】:

我正在处理一个客户希望将现有页面动态加载到单个页面中的项目。这没问题,但是当页面在现有站点上作为独立文件加载时,样式无法正常工作。有没有办法从每个页面中提取 CSS 链接并将其动态应用于查看器页面?

这是我编写的将外部页面调用到查看器页面的函数的副本:

$(function () {
    $('a.dock-item2').click(function () { // click on an anchor with the dock-item2 class
        $("#page").remove();             // remove what's in the viewer already
        var href = $(this).attr('href'); // grab the external file path and name
        $('<div id="page" />').load(href, function () { // create a new div and load 
            // the page content
            $(this).hide()               // just stuff to make a nice transition...
                .appendTo('#viewer')
                .fadeIn(1000);
        });
        return false;
    })
});

我想将它严格应用到有问题的 div 上……但也许这不是最好的做法。我应该考虑将这些东西加载到 iframe 中吗?可能只是星期五,我已经无法理性思考了。

【问题讨论】:

    标签: jquery css


    【解决方案1】:

    使用 jQuery 的 ajax 功能很难/不可能从远程页面获取非正文标签(正文中不存在的标签)。话虽如此,如果是这种情况,您可以在本地设置一个 PHP 脚本来充当中间人。它可以读取页面的内容,找到 css 文件,然后返回,甚至返回 css 文件本身的内容——然后你可以动态地将它放在你的页面上。这应该不会太难,特别是如果你使用类似 phpQuery 的东西来抓取&lt;script&gt; 标签,甚至是类似于 phpQuery 的 PHPSimpleHTMLDOMParser。

    所有假设,但它可能会起作用;)当然,如果您只是想加载 iframe,您可以。这将使所有链接在 iframe 中保持可操作。

    【讨论】:

    • 我在想 PHP 可能是更好的解决方案,但我只是想看看是否有 js 解决方法。嗯,没什么大不了的……当我无聊的时候,这周末给我一些工作!感谢您的帮助!
    • 也检查这个先前的答案:*.com/questions/1050333/…
    • 感谢您的链接。我想它确实对 RTFM 有帮助,而不是问愚蠢的问题。 ;)
    • 手册通常是大几倍 :) 有几个朋友在街区附近待了一两次,他们可以省去翻阅手册的麻烦。
    • 好点。我下载了您推荐的 DOM Parser 的代码。我会试一试。再次感谢您的帮助!
    【解决方案2】:

    不使用 JavaScript。也许在 php 中使用 fopen fwrite 函数,但我当然认为这会带来很多开销。

    【讨论】: