我目前正在尝试构建Chrome扩展程序,以便在将图像上传到Facebook之前在后台处理图像,以保护用户的隐私。我的问题是我无法阻止Facebook在用户选择后直接上传图像。为此,我尝试注入一些JavaScript,该JavaScript注册一个onChange侦听器:
var inputElements = document.getElementsByClassName('_n _5f0v');
for(i = 0; i < inputElements.length; i++){
//inputElements[i].addEventListener('change', handleImages, true);
inputElements[i].onchange = handleImages;
}
function handleImages(e){
e.preventDefault();
alert('Image upload');
return false;
}
但是,这是行不通的,因为无论如何都会上传图像。警报已正确触发,但preventDefault似乎在这里不起作用,因为在其他地方处理了Facebook上传脚本。关于我该怎么做的任何线索?
事件处理无法以这种方式工作。
要取消注册先前注册的功能,您必须将此功能作为(第二个)参数传递。由于您不能这样做(因为内容脚本无权访问托管页面脚本),因此您也不能删除用于提交表单的侦听器。您也不能依赖preventDefault,因为您不能确定将首先触发哪个事件。
我认为您可以尝试替换负责文件上传的表格,但是我不确定是否可以使用Facebook。如果可以,您可以做任何您想做的事。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句