Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Windows环境中获取JavaScript UMD包的完整字符串。toString()不起作用_Javascript_Json_String_Object_Umd - Fatal编程技术网

如何在Windows环境中获取JavaScript UMD包的完整字符串。toString()不起作用

如何在Windows环境中获取JavaScript UMD包的完整字符串。toString()不起作用,javascript,json,string,object,umd,Javascript,Json,String,Object,Umd,我的包中有一个名为utils的UMD包,它只有一个名为sum的方法,如下所示: console.log(utils.sum([1,2,3]); // => 6 现在,我想获取我的UMD源代码的完整字符串,由于某种原因,我不能简单地fetch('path/to/my/utils UMD.js'),所以我需要同步获取我的UMD包字符串 我尝试过几种方法,但没有成功,以下是一些方法: window.utils.toString(); //=>“[对象模块]” Object.prototype.to

我的包中有一个名为
utils
的UMD包,它只有一个名为
sum
的方法,如下所示:


console.log(utils.sum([1,2,3]);
// => 6
现在,我想获取我的UMD源代码的完整字符串,由于某种原因,我不能简单地
fetch('path/to/my/utils UMD.js')
,所以我需要同步获取我的UMD包字符串

我尝试过几种方法,但没有成功,以下是一些方法:

window.utils.toString();
//=>“[对象模块]”
Object.prototype.toString.call(window.utils);
//=>“[对象模块]”
window.utils的类型;
//=>“对象”
stringify(window.utils)
// => "{}"
以下是我的完整UMD捆绑包源代码:

(函数(e,t){
“对象”==导出的类型&“对象”==模块的类型
?(module.exports=t())
:'function'==typeof define&&define.amd
?定义([],t)
:“对象”==导出的类型
?(导出['utils']=t())
:(e['utils']=t());
})('undefined'!==typeof self?self:this,function(){
返回(函数(e){
var t={};
函数n(r){
if(t[r])返回t[r]。导出;
var o=(t[r]={i:r,l:!1,exports:{});
返回e[r]。调用(o.exports,o,o.exports,n),(o.l=!0),o.exports;
}
返回(
(n.m=e),
(n.c=t),
(n.d=函数(e,t,r){
n、 o(e,t)| Object.defineProperty(e,t,{可枚举:!0,get:r});
}),
(n.r=函数(e){
“未定义”!==符号类型&&
Symbol.toStringTag&&
Object.defineProperty(e,Symbol.toStringTag,{value:'Module'}),
Object.defineProperty(e,'.\u esModule',{value:!0});
}),
(n.t=函数(e,t){
如果((1&t&(e=n(e)),8&t))返回e;
如果(4&t&&“对象”==e&&e&&e的类型,则返回e;
var r=Object.create(null);
如果(
(n.r(r),
defineProperty(r,'default',{enumerable:!0,value:e}),
2&t&“字符串”!=类型e)
)
for(e中的变量o)
n、 d(
R
啊,,
功能(t){
返回e[t];
}.bind(null,o)
);
返回r;
}),
(n.n=函数(e){
变量t=
e&e.\uuu esModule
?功能(){
返回e['default'];
}
:函数(){
返回e;
};
返回n.d(t,'a',t),t;
}),
(n.o=函数(e,t){
返回Object.prototype.hasOwnProperty.call(e,t);
}),
(n.p=“”),
n((n.s='fae3'))
);
})({
f6fd:功能(e,t){
(职能(e){
var t='currentScript',
n=e.getElementsByTagName('script');
t在e||
对象定义属性(e,t{
get:function(){
试一试{
抛出新错误();
}渔获物(r){
变量e,
t=(/.*at[^\(]*\(.*):.+:.+\)$/gi.exec(r.stack)| |[!1])[1];
对于(e in n)
if(n[e].src==t | |“交互式”==n[e].readyState)
返回n[e];
返回null;
}
}
});
})(文件);
},
fae3:函数(e,t,n){
"严格使用",;
var-r;
(n.r(t),‘未定义’!==窗口类型)&&
(n(‘f6fd’),
(r=window.document.currentScript)&&
(r=r.src.match(/(.+\/)[^/]+\.js(\?.*))$/)&&
(n.p=r[1]);
职能o(e){
返回e.reduce(函数(e,t){
返回e+t;
}, 0);
}
n、 d(t,'求和',函数(){
返回o;
});
}
});
});
//#sourceMappingURL=utils.umd.min.js.map

可以这样做吗?

您只能使用
toString
方法获取函数的源代码。您可以尝试使所有UMD捆绑包在具有名称的函数中运行,然后您可以使用
toString
获取源代码,例如:

函数foo(){
console.log('foo')
返回true;
}
document.getElementById('res').innerText=foo.toString();

aaaaaaaaaa

使用XMLHttpRequest我将JS文件设置为字符串我希望它能帮助您

  <script src="utils-umd.js"></script>
    <script>
    var client = new XMLHttpRequest();
    client.open('GET', 'utils-umd.js');
    client.onreadystatechange = function() {
      console.log(client.responseText);
    }
    client.send();
    </script>

var client=new XMLHttpRequest();
open('GET','utils umd.js');
client.onreadystatechange=函数(){
console.log(client.responseText);
}
client.send();
出于某种原因,我不能简单地获取('path/to/my/utils umd.js')

如果您可以通过
加载脚本,那么我看不出fetch不起作用的原因

下面是一个使用fetch将jquery加载到文本区域的示例

const jqueryurl='1〕https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js';
异步函数getjquerySrc(){
document.querySelector('textarea')。值=
wait(wait-fetch(jqueryurl)).text();
}
getjquerySrc();
textarea{
宽度:100%;
}

我不能简单地获取
,这将是获取Javascript源代码的最佳方式。我认为调查
获取
失败的原因可能会产生更好的结果。