下载excel文件在Firefox中不起作用,但适用于Chrome

时间:2017-06-21 17:37:10

标签: javascript excel firefox

我正在尝试在onclick事件上下载excel文件。它允许我下载chrome中的excel文件,但不能下载到Firefox中。不确定是什么问题。我收到了以下错误。

  ReferenceError: event is not defined

以下是我的javascript函数

function hyperlinkFn(){
var htmlTbl="";
var htmlTbl1="";
var string = event.target.parentElement.name;
var tempString=[];
var temp= new Array();
for(var i=0;i<string.length;i++){
    if(string[i]=="|"){
        temp.push(tempString);
        tempString=[];
    }else{
        tempString+=string[i];
    }
}

 userStoryModalRelease = temp[0];
userStoryModalPID = temp[1];
userStoryModalPrjName = encodeURIComponent(temp[2]);
userStoryModalTeam = encodeURIComponent(temp[3]);
userStoryAltId=encodeURIComponent(temp[4]);
userStoryModalStatus = temp[5];
userStoryModalTeam = userStoryModalTeam.replace(", ", ",");

var uri="getUserStoryDetails.htm?release=" + userStoryModalRelease + "&projectId=" + userStoryModalPID + "&projectName=" + userStoryModalPrjName +
  "&team=" + userStoryModalTeam + "&alternateId=" + userStoryAltId + "&view=" + storyView;
var encode = encodeURI(uri);
window.location = encode;

}

我在数据表中调用此函数的HTML代码

       {
                                title : "Total Points",
                                data : function(data, type, row, meta) {
                                    return data.totalSum+'<a name="'+ data.releaseNum +'|'+ data.projectId +'|'+ data.projectName +'|'+ data.team + '|'+ data.altId + '|total|'+'" onclick="hyperlinkFn()">'     
                                            + '<i class="fa fa-file-excel-o font-size-15 " title="Click here to export details " aria-hidden="true"></i></a>';
                                },
                                className : "center storypoint yellow_fill pos-rel"
                            } ],

2 个答案:

答案 0 :(得分:1)

更改您的click绑定,如下所示,以便该活动有效:

$(document).on('click', '.classname', function(event){
    var htmlTbl="";
    var htmlTbl1="";
    var string = event.target.parentElement.name;
    var tempString=[];
    var temp= new Array();
    for(var i=0;i<string.length;i++){
        if(string[i]=="|"){
            temp.push(tempString);
            tempString=[];
        }else{
            tempString+=string[i];
        }
    }

     userStoryModalRelease = temp[0];
    userStoryModalPID = temp[1];
    userStoryModalPrjName = encodeURIComponent(temp[2]);
    userStoryModalTeam = encodeURIComponent(temp[3]);
    userStoryAltId=encodeURIComponent(temp[4]);
    userStoryModalStatus = temp[5];
    userStoryModalTeam = userStoryModalTeam.replace(", ", ",");

    var uri="getUserStoryDetails.htm?release=" + userStoryModalRelease + "&projectId=" + userStoryModalPID + "&projectName=" + userStoryModalPrjName +
      "&team=" + userStoryModalTeam + "&alternateId=" + userStoryAltId + "&view=" + storyView;
    var encode = encodeURI(uri);
    window.location = encode;
})

注意:从超链接中移除onclick事件并在超链接上添加class并将该类名替换为.classname

答案 1 :(得分:0)

这里已经涵盖了这个: ReferenceError: event is not defined error in Firefox

  

WebKit遵循IE在&#34; event&#34;中使用全局符号的旧行为,但   Firefox没有。当您使用jQuery时,该库将规范化   行为并确保您的事件处理程序传递给事件   参数。

function hyperlinkFn(){需要成为function hyperlinkFn( event ){