- alt = match[0];
- icon = match[1];
- variant = match[2];
- i = index + alt.length;
- if (variant !== '\uFE0E') {
- src = options.callback(
- grabTheRightIcon(icon, variant),
- options,
- variant
- );
- if (src) {
- img = new Image();
-
- // Set additional image attributes.
- if ( options.imgAttr ) {
- for ( attr in options.imgAttr ) {
- img.setAttribute( attr, options.imgAttr[attr] );
- }
+ rawText = match[0];
+ iconId = grabTheRightIcon(rawText);
+ i = index + rawText.length;
+ src = options.callback(iconId, options);
+ if (src) {
+ img = new Image();
+ img.onerror = options.onerror;
+ img.setAttribute('draggable', 'false');
+ attrib = options.attributes(rawText, iconId);
+ for (attrname in attrib) {
+ if (
+ attrib.hasOwnProperty(attrname) &&
+ // don't allow any handlers to be set + don't allow overrides
+ attrname.indexOf('on') !== 0 &&
+ !img.hasAttribute(attrname)
+ ) {
+ img.setAttribute(attrname, attrib[attrname]);