前端动态加载JS

JavaScript010

前端动态加载JS,第1张

最近机顶盒遇到一种特殊场景需要按需加载js,所以特此记录动态加载JS的方法

这个方法加载的是本地的js,如果要加载非本地js的话,应该要加上crossorigin头。

phantomjs 抓取js动态加载数据的方法:

phantomjs因为是无头浏览器可以跑js,用来进行网页抓取是再好不过了。

比如我们要批量抓取网页 “历史上的今天” 的内容。

第一行将会在终端打印出字符串,第二行 phantom.exit 将退出运行。

在该脚本中调用 phantom.exit 是非常重要的,否则 PhantomJS 将根本不会停 止。 pyspider 连上 PhantomJS 代理后,你就能通过在 self.crawl 添加 fetch_type='js' 的参数,开启使用 PhantomJS 抓取。

动态创建 script 标签,就可以加载了,简单写个 demo,未测试,仅提供思路:

var script = document.createElement( 'script' )

script.type = 'text/javascript'

script.src = 'http://******************.js'

script.onload = function() {

    console.log( ' Done' )

}

document.getElementsByTagName( 'head' )[ 0 ].appendChild( script )

上面代码需要注意几点:

一些旧版本IE可能不支持 script 的 onload,需要使用 onreadystatechange。

插入节点是,严谨的话,需要判断一下是否有<base>标签存在