刚刚开始学习JS,并且我正在尝试导入一个库的问题。
开发人员建议如下:
<script>
window.sodium = {
onload: function (sodium) {
let h = sodium.crypto_generichash(64, sodium.from_string('test'));
console.log(sodium.to_hex(h));
}
};
</script>
<script src="sodium.js" async></script>
但是,这仅在页面加载时执行 - 我不能在需要时在页面下方运行功能。就这样:
<script>
var App = new function(myLibrary){
this.sodium = myLibrary;
this.example = function () {
h = this.sodium.crypto_generichash(64, this.sodium.from_string('test'));
return this.sodium.to_hex(h);
}
}
var create = new App(window.sodium);
</script>
/...../
<script>console.log(create.example());</script>
<script src="sodium.js" async></script>
我该怎么做?我一直得到错误,如“sodium.crypto_generichash”不是一个功能。或钠没有定义。
答案 0 :(得分:0)
此代码在加载库之前运行:
<script>
var App = new function(myLibrary){
this.sodium = myLibrary;
this.example = function () {
h = this.sodium.crypto_generichash(64,
this.sodium.from_string('test'));
return this.sodium.to_hex(h);
}
}
尝试删除async
并更改脚本的顺序。
在window.onload函数中运行代码:
window.onload = function() {
//your code
}