因为我想通过<head> section e.g. css & js file name
将ajax
中包含的文件名(包括它的容器文件夹)发送到服务器端。
请注意,在给定的示例中,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 */
}
答案 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