用css加载外部文件完好无损?

时间:2009-06-26 16:57:32

标签: jquery css

我正在开发一个项目,客户希望将现有页面动态加载到单个页面中。这没问题,但是当页面作为现有站点上的独立文件加载时,样式不起作用。有没有办法从每个页面中提取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中吗?也许只是星期五,我不能理性地思考......

提前感谢您的帮助/建议!!

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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