angular7中引入外部js文件

JavaScript015

angular7中引入外部js文件,第1张

1.将引入的外部js文件放到assets文件下

注:js文件中的方法要写在一个对象里(具体原因正在探索...)

2.在angular.json文件中找到scripts配置js文件路径

3.在tsconfig.json文件中加入allowJs:true

4.在src文件下新建typings.d.ts文件,用来定义js文件中的静态类型

5.第四步相当于全局引入(自己理解的,不知道这样描述准确否),如果只想要在所需的组件里使用,即在组件的ts文件中单独引入

6.最后调用js文件中的方法即可

本文实例讲述了javascript实现动态导入js与css等静态资源文件的方法。分享给大家供大家参考。具体实现方法如下:

/**

*

动态导入静态资源文件js/css

*/

var

$import

=

function(){

return

function(rId,

res,

callback){

if(res

&&

'string'

==

typeof

res){

if(rId){

if($($('#'

+

rId),

$('head')).length>0){

return

}

}

//加载资源文件

var

sType

=

res.substring(res.lastIndexOf('.')

+

1)

//

支持js/css

if(sType

&&

('js'

==

sType

||

'css'

==

sType)){

var

isScript

=

(sType

==

'js')

var

tag

=

isScript

?

'script'

:

'link'

var

head

=

document.getElementsByTagName('head')[0]

//

创建节点

var

linkScript

=

document.createElement(tag)

linkScript.type

=

isScript

?

'text/javascript'

:

'text/css'

linkScript.charset

=

'UTF-8'

if(!isScript){

linkScript.rel

=

'stylesheet'

}

isScript

?

linkScript.src

=

res

:

linkScript.href

=

res

if(callback

&&

'function'

==

typeof

callback){

if

(linkScript.addEventListener){

linkScript.addEventListener('load',

function(){

callback.call()

},

false)

}

else

if

(linkScript.attachEvent)

{

linkScript.attachEvent('onreadystatechange',

function(){

var

target

=

window.event.srcElement

if

(target.readyState

==

'complete')

{

callback.call()

}

})

}

}

head.appendChild(linkScript)

}

}

}

}()

希望本文所述对大家的javascript程序设计有所帮助。

静态资源文件放入public文件夹下(类似cli2里面的static文件夹),打包时不会被wenpack处理,输出文件在dist文件夹下。

在index.html中通过

<script src="<%= BASE_URL %>clipboard.min.js"></script>

参考

<link rel="icon" href="<%= BASE_URL %>favicon.ico">

可以看到项目中ico图标就是通过这种方式引入!!

public文件夹下文件是不被处理的,所以我们可以创建一个config.js文件

config.js

在index.html中引入

使用

遇到的问题,修改打包后的config.js文件,值不更新

排查方式:

1.先确认config.js文件是否更新,浏览器的缓存可能会影响

2.可以修改js文件名,比如加上hash值,config.hashxxx.js,在index.html引入的地方也要对应修改

综上

本地测试ok