我得到的错误并不是那么有用:
SCRIPT445:对象不支持此操作
投掷它的代码是
$('#my-button').click(function(e){
e.preventDefault();
var link = document.createElement('a');
link.href = 'http://www.example.com/'+encodeURIComponent(data.name);
link.target = '_blank';
if(document.createEvent){
// for IE 11
eventMouse = document.createEvent("MouseEvent");
eventMouse.initMouseEvent("click",true,true,window,0,0,0,0,0,false,false,false,false,0,null);
} else {
eventMouse = new MouseEvent('click');
}
link.dispatchEvent(eventMouse);
});
其中data.name
是我从AJAX返回时返回创建此按钮的单击处理函数,并且是一个位置字符串,如“Nashville,TN”。该代码适用于Chrome& Firefox但在IE 11中断了。如果我删除+encodeURIComponent(data.name)
它也可以在IE 11中正常工作,但这是一个重要的部分。微软的encodeURIComponent documentation也让我相信这个功能不应该在IE 11中造成任何问题。