|
最近在學(xué)習(xí)微信小程序的開(kāi)發(fā),在一個(gè)練手項(xiàng)目中,需要使用一個(gè)第三方開(kāi)源的庫(kù)xmorse.js,在使用是調(diào)用了xmorse.js中的一個(gè)方法decode(),結(jié)果出現(xiàn)如下報(bào)錯(cuò):
-
WAService.js:3 thirdScriptError
-
decode is not defined;at "pages/xmorse/xmorse" page
-
lifeCycleMethod onLoad function
-
ReferenceError: decode is not defined
-
......
后來(lái)查了一下微信小程序開(kāi)發(fā)文檔,發(fā)現(xiàn)在引入第三方庫(kù)時(shí)需要暴露接口,而且第三方庫(kù)內(nèi)不能使用window等對(duì)象。
小程序開(kāi)發(fā)文檔Q&A
為什么腳本內(nèi)不能使用window等對(duì)象?
頁(yè)面的腳本邏輯是在JsCore中運(yùn)行,JsCore是一個(gè)沒(méi)有窗口對(duì)象的環(huán)境,所以不能在腳本中使用window,也無(wú)法在腳本中操作組件 所以自己又在網(wǎng)上尋找解決方法,最后發(fā)現(xiàn)了一種解決辦法,具體是參考segmentfault上的一篇文章微信小程序開(kāi)發(fā)實(shí)戰(zhàn)——使用Immutable.js,照著上面自己慢慢的修改最終解決了這個(gè)問(wèn)題
原始的庫(kù):
-
!function (root, factory) {
-
if (typeof module === 'object' && module.exports) {
-
module.exports = factory(root); // nodejs support
-
module.exports['default'] = module.exports; // es6 support
-
}
-
else
-
root.xmorse = factory();
-
}(typeof window !== 'undefined' ? window : this,
-
function () {
-
// Map of Morse code patterns to supported characters.
-
......
修改后的庫(kù):
-
!function (global, factory) {
-
module.exports = factory();
-
}(this,
-
function () {
-
// Map of Morse code patterns to supported characters.
-
......
這樣修改后就可以正常使用庫(kù)函數(shù)了。
|