Skip to content

Commit c6ca553

Browse files
committed
fix IE9 className issue (fix #2001)
1 parent 146002a commit c6ca553

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

src/util/dom.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ export function off (el, event, cb) {
190190

191191
function setClass (el, cls) {
192192
/* istanbul ignore if */
193-
if (isIE9 && el.hasOwnProperty('className')) {
193+
if (isIE9 && !(el instanceof SVGElement)) {
194194
el.className = cls
195195
} else {
196196
el.setAttribute('class', cls)

test/unit/specs/misc_spec.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,4 +387,18 @@ describe('Misc', function () {
387387
done()
388388
})
389389
})
390+
391+
it('IE9 class & :class merge during transclusion', function () {
392+
var vm = new Vue({
393+
el: document.createElement('div'),
394+
template: '<test class="outer"></test>',
395+
components: {
396+
test: {
397+
replace: true,
398+
template: '<div :class="{\'inner\': true}"></div>'
399+
}
400+
}
401+
})
402+
expect(vm.$el.firstChild.className).toBe('outer inner')
403+
})
390404
})

0 commit comments

Comments
 (0)