js封裝外掛程式 元件 三種方式,含es6新特性。

2022-01-11 04:50:11 字數 3766 閱讀 9128

1.先來說一下我使用到的es6的object.assign。在jq裡合併物件用的是extend方法,用來處理預設引數和傳入引數做合併。es6裡為我們提供了object.assign,但是ie下全部撂倒。

解決辦法:在使用object.assign之前,寫下:

if (!object.assign) 

}return to;

}});

}

2.第一種,物件導向寫法-掛載到window下

(function(win, doc) ;

function setstyles(options)

if (!object.assign)

}return to;

}});

}self = object.assign(self, defaultsettings, options);

self.container = doc.queryselector(self.container) || doc.queryselectorall(self.container);

self.init();

}setstyles.prototype =

if(pro == 'text' && typeof self[pro]== 'string') else if(pro == 'text' && typeof self[pro]== 'function')

self.container.style[pro] = self[pro];

}}, */

var link=document.createelement('link');

link.href="./index.css";

link.type='text/css';

link.rel = 'stylesheet';

},var htmlin=''+

'我是內容

'+'';

var html=document.createelement("div");

html.innerhtml=htmlin;

},init:function()

}win.setstyles = setstyles;

})(window, document)

//呼叫:

new setstyles(

});

"use strict";

class websong

this.ops=object.assign({},ops,opt)

}var thas=this;

var link=document.createelement("link");

link.href=thas.ops.css;

link.type='text/css';

link.rel = 'stylesheet';

link.setattribute("id","main")

/* return link.onload = link.readystatechange = function ()

} */

}var thmlin='標題

【關閉】

我是生成的內容

'; var html=document.createelement("div");

html.setattribute("id","openboxcontainer");

html.classname="hide";

html.innerhtml=thmlin;

var showdin="

"; var showd=document.createelement("div");

showd.innerhtml=showdin;

}evnet()

el.onclick=open;

}else

for(var i=0;iww ? demox = ww - ow : "";

var wh=window.innerheight;

var oh=demo.offsetheight;

demoy<0?demoy=0:"";

demoy+oh>wh?demoy=wh-oh:'';

// 滑鼠移動時demo的位置座標

demo.style.left = demox + "px";

demo.style.top = demoy + "px";

//清除選中文字

window.getselection ? window.getselection().removeallranges() : document.selection.empty();}};

// 滑鼠抬起清除拖拽效果

document.onmouseup = function () ;

// 點選關閉按鈕關閉跟隨框

close.onclick = function () ;

})(window)}}

init()

}new websong().init();

3.彈窗外掛程式【網友的】借鑑其思路

(function(window,document),options);  

// 判斷傳進來的是dom還是字串

if((typeof targetdom)==="string")else

var boxdom = document.createelement("div");

var imgdom = document.createelement("img");

// 設定預設樣式 注意將z-index值設定大一些,防止其他元素層級比遮罩層高

boxdom.style.csstext = "display: none;position: absolute;left: 0;top: 0;width: 100%;height:100%;background-color: rgba(0,0,0,0.8);z-index:9999;";

imgdom.style.csstext = "margin-top:20px;width: 100%;";

// 追加或重設其樣式

if(this.options.boxdomstyle)

if(this.options.imgdomstyle)

imgdom.src = this.options.imgsrc;

this.boxdom = boxdom;

// 初始化

this.init();

};

maskshare.prototype = ,

extend:function(obj,obj2)

return obj;

},

setstyle:function(dom,objstyle)

},

event:function(),false);

this.boxdom.addeventlistener("click",function(),false);

} };

// 暴露方法

window.maskshare = maskshare;

}(window,document));

open

new maskshare("#openbtn",,

imgdomstyle:,

open:function(),

close:function()

});

Eclipse安裝外掛程式的三種方式

eclipse外掛程式的常見安裝方法大體有以下三種 直接複製 注意 直接將 外掛程式包解壓到plugins資料夾下之後,重啟eclipse,可能不會載入新的外掛程式。解決方法是 1 開啟命令列,到當前eclipse的目錄下,輸入eclipse clean,重新啟動eclipse,這樣eclipse就...

JS事件繫結三種方式

1.在html標籤中直接繫結 2.在js中獲取到相應的dom元素後繫結 重複繫結會覆蓋之前繫結的onclick事件let button1 document.getelementbyid btn1 button1.onclick function 3.在js中使用addeventlistener 實現...

Vue建立元件的三種方式

1.1 使用vue.extend來建立元件模板物件 var com1 vue.extend 1.2 使用 vue.component完成元件的建立 vue.component 元件的名稱 建立出來的元件模板物件 注意 使用vue.component 定義全域性元件的時候,如果元件名稱使用了駝峰命名,...