从某些浏览器

时间:2017-04-10 13:11:36

标签: javascript file-upload click

我希望用户点击一个div,其下面有一个选择框,display:none,所以用户点击该div,然后会出现选项。 在移动设备中,应该会显示带有选项的原生弹出窗口(这在这里没有问题)

主要问题是其中一个主要选项是第3个选项,用户可以上传"文件"在服务器上,从计算机上。

因此应该打开文件上传对话框。

它适用于:用于Windows桌面的chrome。

除了:safari(Mac / iOS)或chrome(适用于Mac / iOS),虽然适用于Mac的firefox可以使用(版本直到52)。为什么这么多差异..这是一个错误与否?

我理论上该事件是从select html元素的onchange事件中触发的,因此应该考虑"用户上下文"起源。 onchange函数将调用" click"在文件上传html元素,触发它打开文件上传对话框。

- 版本52或更早版本中的Firefox行为会触发"弹出窗口"虽然我不认为这应该被视为一个弹出窗口,因为它不是像那些"广告"弹出窗口,它是一个用于上传的本地Windows UI ...

检查这个jbin [jsBin] [1]



$( document ).ready(function() {
    $("#test").change(function(event){   
        if($(this).val()==3) {
           //open the file uploader
           $("#test2").focus().click();
        }
        $(this).val(null); //reset the on change value;
    });
});

.fakebtn{
    position:relative;display:inline-block;
    padding:10px; 
    background-color:#777; 
    color:white;
}

.styled_select{
    position:absolute; 
    opacity:0; top:0; 
    left:0px; 
    height:100%; 
    width:100%
}

<!DOCTYPE html>
<html>
<head>  
            <script src="https://code.jquery.com/jquery-2.1.4.js"></script>
</head>
<body>
            <h1>Please select file to create. 3rd Option works in desktop, not in mobile?</h1>
            <input style="display:none; " id="test2" type="file" />
            <br><br>
            <div class="fakebtn">
                <span>+</span>
                <select id="test" class="styled_select">
                    <option value="1">Create new blank page</option>
	    <option value="2">Create file from template 1</option>
	    <option value="3">Upload from your computer a file</option>
        </select>
    </div>
</body>
       </html>
&#13;
&#13;
&#13;

0 个答案:

没有答案