如何在脚本标记的index.html中使用Bowser Javascript库?

如何在脚本标记的index.html中使用Bowser Javascript库?,javascript,angularjs,Javascript,Angularjs,我需要在AngularJS应用程序中使用Javascript库,但在AngularJS应用程序初始化之前,我需要在index.html中使用Javascript库 这是图书馆: 通常是这样使用的: const browser = Bowser.getParser(window.navigator.userAgent); console.log(`The current browser name is "${browser.getBrowserName()}"`); // The current

我需要在AngularJS应用程序中使用Javascript库,但在AngularJS应用程序初始化之前,我需要在index.html中使用Javascript库

这是图书馆:

通常是这样使用的:

const browser = Bowser.getParser(window.navigator.userAgent);

console.log(`The current browser name is "${browser.getBrowserName()}"`);
// The current browser name is "Internet Explorer"
问题是,在脚本标记中定义库之后:

<script src="lib/bower/..../bowser.js"></script>

我可以像这样在index.html中的下一个脚本标记中立即使用它吗

<script>
    const browser = Bowser.getParser(window.navigator.userAgent);
    ...
</script>

const browser=Bowser.getParser(window.navigator.userAgent);
...

目前,Bowser未定义。

在检查
Bowser
代码后,它看起来好像没有大写。此外,您提供的bowser库文件可能不打算以这种方式使用。一种解决方案是从CDN提供bowser的内置版本:

<script src="https://cdn.jsdelivr.net/npm/bowser@2.5.3/es5.min.js"></script>
<script>
    const browser = bowser.getParser(window.navigator.userAgent);
    //...
</script>

const browser=bowser.getParser(window.navigator.userAgent);
//...

您是否尝试在$(document).ready(function(){}中使用您的Bowser对象在最后一个脚本标记中阻塞,以确保页面已准备就绪?除非设计为这样做,否则库将不必将自身附加到
Bowser
全局对象。如果不确切知道
angular Bowser.js
是什么,则很难提出解决方案。因此,
angular Bowser
在全局对象中可用范围为
窗口['angular-bowser']
如果您将其包含在脚本标记中,那么它的工作取决于角度。我已经检查了
Bowser
库的代码,它是作为一个窗口构建的,因此它应该将自身加载为
窗口。Bowser
或仅
Bowser
(如果包含)。因此,尝试直接为Bowser添加脚本标记,而不是Angular-Bowser实际上是bowser本身..不是角度bowser.Sorry在我的情况下,bowser是未定义的,因为脚本在某种程度上没有正确编译..当我在生产模式下启动我的应用程序时(使用uglify等)它将此错误记录在终端:“意外标记:name«Parser»,预期为:punc«;»”,文件名:“../../../../build/.tmp/concat/js/vendor.js”,这来自脚本本身:
好吧,仅从bower文件夹提供服务对我来说似乎有点不寻常,因此您提供的代码可能不打算以这种方式提供。2 o选项:1.显式构建一个小捆绑包,以包括或2.从已构建的单独源(如
https://unpkg.com/bowser@2.0.0-beta.3/es5.js
。我还将cdt更改为JSDeliver,这可能是一个更好的答案选择,也是一个更为更新的lib版本。