如何使用javascript从dom中获取点击位置的图片网址?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用javascript从dom中获取点击位置的图片网址?相关的知识,希望对你有一定的参考价值。
我一直在开发chrome扩展名,我想在点击的位置获取图片网址。问题是图像标签可能没有出现在单击的位置。它可能深深地嵌套在dom中。是否有任何Javacript库用于获取图像的URL?使用背景css属性附加一些时间图像。这是我编写的代码,但有时无法获取图像网址。
if ($(e.target).is("img")) {
data = $(e.target).attr('src');
} else if ($(e.target).children('img').length > 0) {
data = $(e.target).children('img')[0].attr('src');
} else if ($(e.target).parents('img').length > 0) {
data = $(e.target).parents('img').attr('src');
} else {
data = $(e.target).css("background-image");
if (data.indexOf("url") == 0)
data = data.slice(5, data.length - 2);
}
if (verifyImageType(data)) {
data = parseImageSource(data);
} else {
showToast("Cannot grab image source. Please manually add image url");
worofIframe.postMessage({ type: "RESET_SELECTION_VARIABLES", content: "" }, "*")
}
parseImageSource = (url) => {
//Remove leading slashes if any
while (url.charAt(0) == '/' || url.charAt(0) == '\') {
url = url.substr(1);
}
// Regular expression matching google.com like pattern
if (url.match(/[-a-zA-Z0-9@:%._+~#=]{1,256}.[a-zA-Z0-9()]{1,6}([-a-zA-Z0-9()@:%_+.~#?&//=]*)/g)) {
if (!(url.indexOf("http://") == 0 || url.indexOf("https://") == 0)) {
url = window.location.protocol + "//" + url;
}
} else {
url = window.location.origin + "//" + url;
}
return url;
}
verifyImageType = (url) => {
return (url.match(/.(jpeg|jpg|gif|png|svg)/) != null);
}
答案
很好information,非常感谢您分享这些内容
以上是关于如何使用javascript从dom中获取点击位置的图片网址?的主要内容,如果未能解决你的问题,请参考以下文章
使用 JavaScript 获取 2 个 DOM 元素之间的相对位置
如何使用 Javascript DOM 从具有多个表单的页面获取具有输入类型密码的表单?