src/utils目录支持SSR (#51)
This commit is contained in:
@@ -6,6 +6,8 @@
|
||||
* <div v-clickoutside="handleClose">
|
||||
* ```
|
||||
*/
|
||||
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);
|
||||
},
|
||||
|
||||
+5
-2
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user