获取当前背景图像的URL并移交给<href>
Get URL to current background-image and hand over to <a href>
我有一个问题,到目前为止我无法弄清楚。我在这里用谷歌搜索和搜索,找到了一些答案,但我无法让它工作。
我想从css中找出当前的背景图像并创建一个链接来下载图像。
这是我到目前为止的简单代码:
<style type="text/css">
body.custom-background { background-image: url('http://localhost:8888/wp-content/uploads/2012/04/bg2.jpg'); background-repeat: no-repeat; background-position: top center; background-attachment: scroll; }
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
var image = body.custom-background.css('background-image').replace(/^url'((.*?)')$/, '$1');
document.getElementById('link').setAttribute("href",image);
</script>
<div id="hide">
<a id="hidepage">hide page</a>
<a id="showpage" style="display:none;">show page</a>
</div>
<div id="downloadbg">
<a id="link"><br>Download Background</a>
</div>
我对编程很陌生,我的想法已经用完了。
非常感谢您的帮助。
<head>
<style type="text/css">
body.custom-background { background-image: url('http://localhost:8888/wp-content/uploads/2012/04/bg2.jpg'); background-repeat: no-repeat; background-position: top center; background-attachment: scroll; }
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var image = $(".custom-background").css('background-image').replace(/^url'((.*?)')$/, '$1');
$('#link').attr("href", image);
});
</script>
</head>
<body class="custom-background">
<div id="hide">
<a id="hidepage">hide page</a>
<a id="showpage" style="display:none;">show page</a>
</div>
<div id="downloadbg">
<a id="link"><br>Download Background</a>
</div>
</body>
小提琴
要使链接成为 donwload,而不仅仅是显示图像,您必须执行一些服务器端脚本,将标头Content-Disposition
设置为 attachment
!
$('body').css('background-image')
这将使用 jquery 获取您的背景图像值(如果需要),然后您必须在链接中设置您的 href(看起来您正在这样做)。
按照直接的javascript作为你做,获取背景图像将是:
var image = document.getElementsByTagName("body")[0]
var bg = image.style.backgroundImage;
这也将获得您在链接中设置的值
您可能忘记在 DOM ready 上执行您的函数(无法确定为简化代码),但通常这应该可以正常工作。
$(function() {
$('#link').attr('href', $('body.custom-background').css('background-image').replace(/^url'((.*?)')$/, '$1'));
});
参见:http://jsfiddle.net/p93jx/9/
<!DOCTYPE html>
<html>
<head>
<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'></script>
<link rel="stylesheet" type="text/css" href="/css/normalize.css">
<link rel="stylesheet" type="text/css" href="/css/result-light.css">
<style type='text/css'>
body { background-image: url('http://localhost:8888/wp- content/uploads/2012/04/bg2.jpg');
background-repeat: no-repeat;
background-position: top center;
background-attachment: scroll; }
</style>
<script type='text/javascript'>
$(document).ready(function(){
var image = $('body').css('background-image');
image.match(/url'((.*?)')/);
document.getElementById('link').setAttribute("href",image);
});
</script>
</head>
<body>
<div id="hide">
<a id="hidepage">hide page</a>
<a id="showpage" style="display:none;">show page</a>
</div>
<div id="downloadbg">
<a id="link"><br>Download Background</a>
</div>
</body>
</html>
这是一个非 jQuery 的方法:
function bgLink(elem, from) {
if (!elem || !from) {
return false;
}
else {
var bgLink = window.getComputedStyle(from, null).backgroundImage,
url = bgLink.substring(bgLink.indexOf('http:')).replace(')', '');
elem.href = url;
elem.innerHTML = url;
}
}
bgLink(document.getElementById('downloadBG'), document.getElementById('bgElem'));
JS小提琴演示。
dom 加载之前,您不能引用 body。所以你应该把你的javascript包装在一个jQuery函数中:$(function(){ code here!;});它给出的结果与侦听 jQuery.ready 事件的结果相同。或者,您可以将javascript代码移动到页面底部。
像这样的东西应该可以完成这项工作:
<head>
<title></title>
<style type="text/css">
body{ background: url(@{'http://localhost:8888/wp-content/uploads/2012/04/bg2.jpg'}); }
</style>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(function(){
var image = $('body').css('background-image').replace(/^url'((.*?)')$/, '$1');;
$('#link').attr('href', image);
});
</script>
</head>
<body>
<div id="hide">
<a id="hidepage">hide page</a>
<a id="showpage" style="display:none;">show page</a>
</div>
<div id="downloadbg">
<a id="link"><br>Download Background</a>
</div>
</body>
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 在单击href链接的同时下载文件
- 可以在这里为背景图像设置滤镜吗
- 如果href包含X,请更改href
- 如何使用jquery更改html中的背景颜色
- 使用 js 将背景图像设置为 HTML
- 锚点元素的href属性自动更改
- 锚点元素不't使用svg时,请打开EDGE上的href
- 使用带括号的图像URL作为jQuery的背景
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- 如何使用css动画/javascript使具有背景图像的元素出现
- 循环浏览多个身体背景图像
- 将淡入淡出添加到“我的身体背景滑块”
- Href:当前DIV中的目标ID
- 在 css 文件 href Javascript 中更改 css 类背景
- 如何为 href 背景设置替代颜色
- 在弹出窗口,背景页面,Chrome扩展程序中访问w.location.href
- Javascript如何基于href更改锚点背景颜色
- fill<李>背景中使用href链接