2017-06-21 3 views
1

Ich versuche, eine Excel-Datei on onclick Ereignis herunterladen. Es erlaubt mir, Excel-Datei in Chrome aber nicht in Firefox herunterzuladen. Nicht sicher, was das Problem ist. Ich bekomme einen Fehler.Download der Excel-Datei funktioniert nicht in Firefox funktioniert aber in Chrome

ReferenceError: event is not defined 

Unten ist mein Javascript-Funktion

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, wo ich diese Funktion in der Datentabelle

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

zu werden gibt es ein Problem mit 'var string = event.target.parentElement.name;' Wo ist Ereignis definiert? – Aaron

Antwort

1

ändern click verbindlich wie unten nenne, so dass Ereignis wird funktionieren:

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

Hinweis:onclick Ereignis aus Hyperlink entfernen und class auf Hyperlink hinzufügen und diese Klassennamen ersetzen mit .classname

+0

Danke..das hat für mich funktioniert – MSV

0

Sieht aus wie dies bereits hier behandelt wurde: ReferenceError: event is not defined error in Firefox

WebKit folgt IE altes Verhalten der Verwendung eines globalen Symbols für "Ereignis", aber Firefox nicht. Wenn Sie jQuery verwenden, normalisiert diese Bibliothek das Verhalten und stellt sicher, dass Ihre Ereignishandler den Parameter des Ereignisses übergeben.

function hyperlinkFn(){ Bedürfnisse function hyperlinkFn(event){

Verwandte Themen