如何获取html header的元素

时间:2011-10-11 08:38:33

标签: javascript jquery dom

因为我想通过<head> section e.g. css & js file nameajax中包含的文件名(包括它的容器文件夹)发送到服务器端。
请注意,在给定的示例中,css & js位于 files 文件夹内 所以我怎样才能获得css&amp; js文件名包括它的容器

<html> <head>
  <link rel="stylesheet" href="files/sample.css"/>
  <script type="text/javascript" src="files/jquery.js"> </script>
</head>  

现在我还需要考虑其他事情, sample.CSS

    #myImage {
       background: url('image/lucy.jpg'); 
  /* also i need to get these image file name including details with location */
    }

2 个答案:

答案 0 :(得分:3)

这是为了获取head元素中的资源名称(样式表和脚本):

function filterName(path){
    path = path.split('/');
    return path[path.length - 1];
}
var styleSheets = [];
$('head link[rel=stylesheet]').each(function(){
    styleSheets.push(filterName($(this).attr('href'));
});
var scripts = [];
$('head script[src]').each(function(){
    scripts.push(filterName($(this).attr('src'));
});

实际解析这些文件并计算其完整路径相当困难。要获取所有图像,您可以考虑遍历所有dom元素并检查它们是否通过css附加了background-image

function filterBgImage(n){
    var m = n.match(/url\(["'](.*?)["']\)/);
    if(m && m.length == 2)
        return m[1];
    return n;
}
var imgs = [];
$('*')
    .filter(function(){
        var a =  $(this).css('background-image');
        return a != '' && a != 'none';
    })
    .each(function(){
        imgs.push(filterBgImage($(this).css('background-image')));
    });

这种方法的好处在于你不必将相对路径转换为完整路径,因为jquery正在为你做这件事。

答案 1 :(得分:0)

我不确定您可以通过网络浏览器做什么 - 但是有些工具可以在没有的情况下完成 - &gt; http://www.httrack.com/html/overview.html