2017-02-22 1 views
0

Ich erhalte nur in Safari einen Syntaxfehler expected token ')'. Ich habe einige Beiträge im Forum gefunden, die sagen, dass default parameters in Safari nicht unterstützt werden. Aber wie kann ich das dann mit dem untenstehenden Code beheben?Syntaxfehler nur in Safari

function showCartMessage(message = '', img_url = '', statusClass = ''){ 
    if(img_url == ''){ 
     $('.cart-message .product_notification_background').css('background', 'whitesmoke'); 
    }else{ 
     $('.cart-message .product_notification_background').css('background', 'url("' + img_url + '") no-repeat center center'); 
    } 
} 
+1

JavaScript-Funktionsargumente können nur Standardwerte in Browsern haben, die ES6 unterstützen. Damit dies browserübergreifend zuverlässig funktioniert, entfernen Sie das '= ''' in der Funktionsdefinition –

+0

Taka schaut zu [diese Frage] (http://stackoverflow.com/questions/36841496/default-function-parameter-value- In-Safari-ist-nicht-arbeiten) – gaetanoM

Antwort

2

einfach innerhalb der Funktion Standard:

function showCartMessage(message, img_url, statusClass){ 
    message = message || ''; 
    img_url = image_url ||''; 
    statusClass = statusClass || ''; 

    if(img_url == ''){ 
     $('.cart-message .product_notification_background').css('background', 'whitesmoke'); 
    }else{ 
     $('.cart-message .product_notification_background').css('background', 'url("' + img_url + '") no-repeat center center'); 
    } 
} 

Also diese Weise wird jeder Parameter durch als undefined kommt, wird eine leere Zeichenkette vorgenommen werden.

Verwandte Themen