阻止Facebook上传带有Chrome扩展名的图片

时间:2014-04-22 14:13:48

标签: javascript jquery facebook google-chrome google-chrome-extension

我目前正在尝试构建一个chrome扩展程序,它会在将图像上传到Facebook之前在后台处理图像,以保护用户的隐私。 我的问题是,我不能阻止Facebook在用户选择后直接上传图像。为了实现这一点,我尝试注入一些注册onChange Listener的JavaScript:

    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上传脚本在其他地方处理。 关于我如何做到这一点的任何线索?

1 个答案:

答案 0 :(得分:0)

事件处理不是这样的。

要取消注册以前注册的功能,您必须将此功能作为(第二个)参数传递。由于您无法(因为内容脚本无法访问托管页面脚本),因此您也无法删除表单提交的侦听器。 您不能依赖preventDefault,因为您无法确定将首先触发哪个事件。

我认为您可以尝试替换负责文件上传的表单,但我不确定在Facebook的情况下是否可行。如果可以的话,你可以做任何你想做的事。