有人能告诉我,如果我认为jQuery的$ .browser已被弃用了吗?
我现有的实现会继续有效吗?如果没有,是否有一个易于实现的替代方案.
当<a href>使用javascript单击链接时,有没有办法打开浏览文件对话框?它应该像普通的文件浏览按钮一样工作,并给出响应中选择的文件的名称/列表.
这是我想要创建的控件的设计:

如您所见,除了上传控件的浏览按钮外,很容易创建设计.我创造了其余的.我一直在寻找改变浏览按钮的位置,但找不到任何有用的东西.
那么,该怎么做?有一个想法,如嵌入一个不可见的上传控制按钮,但任何其他建议是黄金的,谢谢.
SCRIPT5: Access denied
jquery.min.js, line 3 char 3769
Run Code Online (Sandbox Code Playgroud)
我只是在IE中通过简单的表单提交这个错误
$("#icon_upl").click(function(){ //icon_upl is button which open dialog
$("[name=icon]").click();
});
$("[name=icon]").change(function() { //icon is hidden file input
$("[name=upload_icon]").submit();
});
Run Code Online (Sandbox Code Playgroud)
我将该表单发送到位于同一域的隐藏iframe.
<iframe id="upload_target" name="upload_target" src="#" style="width:0;height:0;display:none;"></iframe>
<form name="upload_icon" action="upload_icon.php" method="post" enctype="multipart/form-data" target="upload_target">
Run Code Online (Sandbox Code Playgroud)
提交输入没有帮助
如果我尝试发送另一种工作正常的表格,我不会得到它
我正在编写一个小的JavaScript应用程序,允许我异步上传图像.
这个脚本在每个浏览器中都很棒,除了猜猜谁,Internet Explorer ......
所以我做的第一件事就是使用Ajax的AjaxForm插件为IE9版本创建一个后备版本,这非常有用!
这是JS脚本.
$("#Uploader").change(function(e){
var form = $("#UploaderForm");
form.trigger('submit');
$(this).attr('disabled','disabled');
e.preventDefault();
});
$("#UploaderForm").submit(function(e){
e.preventDefault();
e.stopPropagation();
var type="POST";var loading=$("#PhotoIsLoading");
if(windowApi === true){
var formData = new FormData($(this)[0]);
$.ajax({
url: url,
type: type,
xhr: function() {
myXhr = $.ajaxSettings.xhr();
if(myXhr.upload){ myXhr.upload.addEventListener('progress',progressHandlingFunction, false);}
return myXhr;
},
beforeSend: function(){loading.removeClass('isHidden_important');},
success: function(response){
jres = JSON.parse(response);
alert("Test ok, file uploaded");
},
error: function(response){console.warn(response);},
data: formData,
cache: false,
contentType: false,
processData: false
});
e.preventDefault();
}else{
$(this).ajaxSubmit({
url: url,
dataType: 'json',
type: type,
beforeSubmit: function(){loading.removeClass('isHidden_important');$(this).formSerialize();}, …Run Code Online (Sandbox Code Playgroud) 我有一个文本字段和按钮与以下css:
JS小提琴链接:http://jsfiddle.net/Tdkre/
.submit {
-moz-box-shadow:inset 0px 1px 0px 0px #cae3fc;
-webkit-box-shadow:inset 0px 1px 0px 0px #cae3fc;
box-shadow:inset 0px 1px 0px 0px #cae3fc;
background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #79bbff), color-stop(1, #4197ee) );
background:-moz-linear-gradient( center top, #79bbff 5%, #4197ee 100% );
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#79bbff', endColorstr='#4197ee');
background-color:#79bbff;
-moz-border-radius:6px;
-webkit-border-radius:6px;
border-radius:6px;
border:1px solid #469df5;
display:inline-block;
color:#ffffff;
font-family:arial;
font-size:14px;
font-weight:bold;
padding:5px 14px;
text-decoration:none;
text-shadow:1px 1px 0px #287ace;
cursor:pointer;
}
.submit:hover {
background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #4197ee), color-stop(1, #79bbff) ); …Run Code Online (Sandbox Code Playgroud) 我们希望减少用户在我们网站上传文件所需的步骤数; 所以我们使用jQuery使用下面的标记打开和回发文件(简化):
<a onclick="$('#uplRegistrationImage').click();">
Change profile picture
</a>
<!-- Hidden to keep the UI clean -->
<asp:FileUpload ID="uplRegistrationImage"
runat="server"
ClientIDMode="static"
Style="display:none"
onchange="$('#btnSubmitImage').click();" />
<asp:Button runat="server"
ID="btnSubmitImage"
ClientIDMode="static"
Style="display:none"
OnClick="btnSubmitImage_OnClick"
UseSubmitBehavior="False" />
Run Code Online (Sandbox Code Playgroud)
这在Firefox和Chrome中运行得非常好; 单击链接时打开文件对话框,并在选择文件时触发回发.
但是在文件上传加载并且用户选择了文件后的IE9中; 在OnChange工作的内容我得到"SCRIPT5访问被拒绝"错误.我已经尝试设置任意超时,设置间隔以检查文件是否无效.
还有其他一些与此有关的问题; 但是没有一个看起来有一个像样的答案(有人说将文件对话框设置为透明并悬停在按钮后面!)
有没有人解决这个问题?或者我是否必须为IE用户提供按钮?
通常,要上传文件,它将分为两步 - 选择一个文件,然后确认上传.我正在上传个人资料图片.由于配置文件pic通常很小,我想通过在文件选择时开始上传文件来减少用户的鼠标点击.请提出好的,也许是常见的方法来实现这一点(我也想了解他们的陷阱,如果有的话).谢谢.
javascript ×6
jquery ×5
html ×4
css ×3
ajax ×1
asp.net ×1
browser ×1
c# ×1
client-side ×1
css3 ×1
file-io ×1
file-upload ×1
html5 ×1