对于webview长按获取图片链接刚开始用的是
function imageSourceFromPoint(x, y) {
var element = document.elementFromPoint(x, y);
if (element.tagName == 'IMG' && element.src) {
return element.src;
}
return null;
}
在正常的html上可以达到效果,但是测试的时候发现有时候获取的链接是html的链接,于是查看了下html的结构,原来图片是在iframe中,上面的js获取到的是iframe的src,这肯定不是我们想要的结果了,于是就有了下面的版本
function imageSourceFromPoint(x, y) {
var element = document.elementFromPoint(x, y);
if (element.tagName == 'IMG' && element.src) {
return element.src;
}else if (element.tagName == 'IFRAME') {
var obj = element.contentWindow.document.elementFromPoint(x, y);
if (obj.tagName == 'IMG' && obj.src) {
return obj.src;
}
}
return null;
}
很简单,就是对iframe加了一层判断。
最后,目前js只是针对个人遇到的情况,也许还有其他case,欢迎补充!
网友评论