【问题标题】:IE jQuery form trigger click manually, access is deniedIE jQuery 表单触发手动点击,访问被拒绝
【发布时间】:2013-10-04 07:34:57
【问题描述】:

我有一个表格可以上传带有jQuery 表格的图片。翻转是可以的,但是当我想触发文件输入类型单击选择文件后,在IE ONLY 中返回此错误:access is denied

$('#imageform #photoimg').trigger('click'); or setTimeout(function(){$('#imageform #photoimg').trigger('click')},1000);
$('#photoimg').live('change',function()
{
    //$("#preview").html('');
    //$("#preview").html('<img src="loader.gif" alt="Uploading...."/>');
    $("#imageform").ajaxForm(
        success: function(out) {
            var imageur = out;
            // do tiny work with out;
        }
    }).submit();
});

问题出在哪里以及如何解决?

【问题讨论】:

  • 最后我发现这是一个“亲爱的” IE 功能,(他们这个工作可以易受攻击并阻止它,多么安全可靠的“亲爱的” IE。为了做这项工作,你必须巧妙地做方法
  • 这里是IE9&IE10的解决方案。较低的版本仍未被发现。 stackoverflow.com/a/16788647

标签: jquery internet-explorer jqueryform


【解决方案1】:

默认情况下 IE 不会让您触发文件元素更改。

如果你想要这个功能,可以使用ajaxuploaderfileuploader

var uploader = new qq.FileUploader({
    // pass the dom node (ex. $(selector)[0] for jQuery users)
    element: document.getElementById('file-uploader'),
    // path to server-side upload script
    action: '/server/upload'
});

【讨论】:

    【解决方案2】:

    我在 j query.form.js 中评论了这些行,然后一切对我来说都很好。 不要问我原因,即使我没有解决方案,但它肯定有效。

                if (io.contentWindow.document.execCommand) {
                  try { // #214
                       io.contentWindow.document.execCommand('Stop');
                 } catch(ignore) {}
              }
    

    【讨论】:

      猜你喜欢
      • 2012-03-13
      • 1970-01-01
      • 1970-01-01
      • 2013-12-20
      • 1970-01-01
      • 2011-09-26
      • 2014-03-26
      • 1970-01-01
      • 2012-05-15
      相关资源
      最近更新 更多