[英]Javascript - How to Get Image Url from Right Click
我正在編寫一個允許用戶在線處理圖像的應用程序。 到目前為止,一切正常,但是在某些站點上-它們未使用img標簽。 因此,我需要右鍵單擊時獲取圖像URL的替代方法。
在FHM.COM中,它們具有以下功能:
<div class="efImage" style="background-image: url('https://igcdn-photos-f-a.akamaihd.net/hphotos-ak-xpa1/t51.2885-15/e15/924583_1497100237194525_212104957_n.jpg');">
</div>
右鍵單擊后,如何獲取該圖片的網址?
這個怎么樣:-
$('*').mousedown(function(event) {
if(event.which == 3) { //detect right click
var background = $(this).css('background-image'); //get background image
if(/url\(([^\)]+)\)/.test(background)){ // check background image exists
var url = /url\(([^\)]+)\)/.exec(background)[1]; // get the url
alert(url);
}
}
});
您需要從backgroundImage解析字符串,可以在兩種情況下將元素傳遞給此方法以獲取圖像的url:
function getUrlFromElement(element){
if(element.tagName.toLowerCase() === "img"){//check if it's an img
return element.src; //it's an image, return src attribute
}
else{
if(element.style.backgroundImage){//it's not an image, check if it has background Image
return element.style.backgroundImage.slice(4,-1); //imageUrl starts at position 4 "url(" ends in length -1 to avoid closing ")"
}
}
}
mousedown
事件是否有鼠標單擊。 event.button
切換為case 2
的鼠標右鍵。 style.backgroundImage
屬性 url()
類似於以下內容:
$('.efImage').on('mousedown', function (ev) {
var dummy = $('#copytext'),
style;
switch (ev.button) {
case 2:
style = this.style.backgroundImage.replace('url(', '').replace(')', '');
break;
}
if (style) {
dummy.val(style).select();
// selection to clipboard
try {
document.execCommand('copy');
} catch (err) {
$('textarea').val(dummy.val());
}
}
});
使用getElementsByClass
var imgSrc = document.getElementsByClass("efImage").src;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.