diff --git a/src/utils/clickoutside.js b/src/utils/clickoutside.js
index db5e6a871..28c8f36a9 100644
--- a/src/utils/clickoutside.js
+++ b/src/utils/clickoutside.js
@@ -6,6 +6,8 @@
*
* ```
*/
+import Vue from 'vue';
+const isServer = Vue.prototype.$isServer;
const clickoutsideContext = '@@clickoutsideContext';
export default {
@@ -20,7 +22,7 @@ export default {
methodName: binding.expression,
arg: binding.arg || 'click'
};
- document.addEventListener(el[clickoutsideContext].arg, documentHandler);
+ !isServer && document.addEventListener(el[clickoutsideContext].arg, documentHandler);
},
update(el, binding) {
@@ -28,7 +30,7 @@ export default {
},
unbind(el) {
- document.removeEventListener(
+ !isServer && document.removeEventListener(
el[clickoutsideContext].arg,
el[clickoutsideContext].documentHandler);
},
diff --git a/src/utils/dom.js b/src/utils/dom.js
index b5c2550a6..45f9e385b 100644
--- a/src/utils/dom.js
+++ b/src/utils/dom.js
@@ -1,3 +1,6 @@
+import Vue from 'vue';
+const isServer = Vue.prototype.$isServer;
+
const trim = function(string) {
return (string || '').replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, '');
};
@@ -66,7 +69,7 @@ export const once = function(el, event, fn) {
};
export const on = (function() {
- if (document.addEventListener) {
+ if (!isServer && document.addEventListener) {
return function(element, event, handler) {
if (element && event && handler) {
element.addEventListener(event, handler, false);
@@ -82,7 +85,7 @@ export const on = (function() {
})();
export const off = (function() {
- if (document.removeEventListener) {
+ if (!isServer && document.removeEventListener) {
return function(element, event, handler) {
if (element && event) {
element.removeEventListener(event, handler, false);