-1

我正在尝试将\node_modules\sip.js\dist\sip.min.js, 添加到我的 html 文件中。我尝试像import * as SIP from 'sip.js/dist/sip';在我的 component.ts 中一样导入,但只有当我从中调用某些函数时才有效。但我需要我的 html 文件来阅读这个sip.min.js

我还尝试下载本地此文件并添加到我的 html 文件中

       <script src="js/sip-0.5.0.js"></script>
       <script src="js/ua.js"></script>

并补充说:

   public loadScript() {
        console.log("preparing to load...");
        let node = document.createElement('script');
        node.src = this.url;
         node.type = "text/javascript";
        node.async = true;
        node.charset = "utf-8";
        document.getElementsByTagName("head")[0].appendChild(node);
   }

   ngOnInit() {
        this.loadAPI = new Promise(resolve => {
            console.log("resolving promise...");
            this.loadScript();
        });
   }

但这不起作用

4

1 回答 1

0

您可以将它们添加到正文中。此外,您的路径应该可以从客户端获得。但是在 Init 事件中添加脚本是不好的做法 - 每次创建组件时都会添加它。我在服务中添加了脚本 - 它执行一次。

     const files = ['js/sip-0.5.0.js','js/ua.js']
     files.forEach((file) => {
                const fileRef = document.createElement('script');
                fileRef.setAttribute('type', 'text/javascript');
                fileRef.setAttribute('src',  file);
                fileRef.onload = function () {
                    console.log('loaded' + file);
                };
                document.body.appendChild(fileRef);
            });

但是这种方法只适用于基于某些条件的动态添加脚本。如果您的脚本独立于其他文件,您可以将其添加到捆绑文件中,而无需任何手动操作。

于 2019-05-31T14:46:25.487 回答