MSV
MSV

Reputation: 165

Download of excel file is not working in Firefox but works in Chrome

I am trying to download an excel file on onclick event. It allow me to download excel file in chrome but not in Firefox. Not sure what is the issue. I am getting below error.

  ReferenceError: event is not defined

Below is my javascript function

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 code where I am calling this function in the datatable

       {
                                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"
                            } ],

Upvotes: 1

Views: 1315

Answers (2)

Aaron
Aaron

Reputation: 459

Looks like this has already been covered here: ReferenceError: event is not defined error in Firefox

WebKit follows IE's old behavior of using a global symbol for "event", but Firefox doesn't. When you're using jQuery, that library normalizes the behavior and ensures that your event handlers are passed the event parameter.

function hyperlinkFn(){ needs to become function hyperlinkFn( event ){

Upvotes: 0

Mahesh Singh Chouhan
Mahesh Singh Chouhan

Reputation: 2588

Change your click binding like below so that event will work:

$(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;
})

Note: remove onclick event from hyperlink and add class on hyperlink and replace that classname with .classname

Upvotes: 1

Related Questions