在我的理解看来,html 就是一个单纯的管显示问题,js就是单纯的管动作问题,css就是单纯的管布局问题,这三个构成了一个网页

在HTML中,经常会用到引入js 文件。

引入js的方法很简单:

1. 1 就是加入一个script 标签,引入一个源文件为test.txt 的文件

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="./test.txt"></script>
<script>
alert( a );
</script>
</head>
<body> </body>
</html>

在上面   test.txt 的内容为: var  a = 100;

运行结果:

1.2 引入的源文件内容是一个函数,也是可以的;

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script>
function fn( data ){
alert( data );
}
</script>
<script>
window.onload = () => {
var oBtn = document.querySelector("input");
oBtn.onclick = () => {
var oScript = document.createElement("script");
oScript.src = "./test2.txt";
document.body.appendChild( oScript );
}
}
</script>
</head>
<body>
<input type="button" value="点击添加 script 标签">
</body>
</html>

点击动态添加:script 标签,script的src属性为test2.txt

test2.txt的内容为:

fn( 100 );
fn('nihao!');
fn("这个是动态调用的script标签!");

调用三次fn()函数

运行结果:弹出三次调用的结果

从上面看出,script标签可以动态调用外部文件

2. XMLHttpRequest 调用

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
window.onload = function(){
var oBtn = document.getElementById("btn");
oBtn.onclick = function(){
var xhr = new XMLHttpRequest();
var url = 'https://api.douban.com/v2/book/27027055';
xhr.onreadystatechange = function(){
if( xhr.readyState == 4 && xhr.status == 200 ){
alert( xhr.responseText );
}
}
xhr.open("GET", url, true);
xhr.send(null);
}
}
</script>
</head>
<body>
<input type="button" value="获取书籍信息" id="btn">
</body>
</html>

结果报错:

2.2 换一种方式调用:加 script 标签,在标签中调用

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
li{
list-style-type: none;
}
</style>
<script>
function show(data) {
//创建一个p元素
var oP = document.createElement("p");
//给创建的p元素添加内容,内容为data对象的title属性
oP.innerHTML = data.title;
//创建一个img对象
var oImg = new Image();
//给img对象获取图片地址
oImg.src = data.image;
// 在body元素内添加p节点
document.body.appendChild( oP );
// 在body元素内添加img节点
document.body.appendChild( oImg );
var oLi = document.createElement("li");
oLi.innerHTML = data.catalog;
document.body.appendChild( oLi );
}
</script>
<script>
window.onload = function () {
var oBtn = document.getElementById("btn");
oBtn.onclick = function () {
// 相当于在这里执行了一个show()函数的调用
var oScript = document.createElement("script");
oScript.src = "https://api.douban.com/v2/book/27027055?callback=show";
document.body.appendChild(oScript);
}
}
</script>
</head>
<body>
<input type="button" value="获取图书" id="btn">
</body>
</html>

源文件地址:https://api.douban.com/v2/book/27027055?callback=show 返回一个 json 数据

声明一个函数 show,参数是一个data对象,然后动态创建一个script标签,在script标签中调用 show

运行结果:

小结:使用script 标签,可以跨域调用数据

上面点击获取图书,就可以调用 https://api.douban.com/v2/book/27027055?callback=show  中的数据

调用的文件和被调用的文件不在同一个地址的现象,叫做跨域访问,说明 script 标签可以进行跨域访问

同源的文件叫同域,不同源的叫跨域,归纳如下:

js 引入外部文件之 script 标签的更多相关文章

  1. jquery,js引入css文件,js引入头尾

    jquery,js引入css文件,js引入头尾 今天在项目中,需要把20多个页面加上头和尾部,头和尾是我写的,所以小师傅把这个工作交给我了. 我开始往里面加,先引入common.css,在body开始 ...

  2. vue3+typescript引入外部文件

    vue3+typescript中引入外部文件有几种方法 (eg:引入echarts) 第一种方法: 1 indext.html中用script引入 <div id="app" ...

  3. 引入外部文件的时候为什么省略http:

    [摘要]相信很多时候大家在使用网上的实例代码的时候,需要引入外部文件,然而它们通常都是省略了http:,这是为什么呢? 先给大家看一个简单的小例子,引入外部jquery文件: <script s ...

  4. nginx 引入外部文件

    http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $ ...

  5. vue2.0 在main.js引入scss文件报错

    在vue2.0的main.js中引入scss文件报错 原因是在 在build文件夹下的webpack.base.conf.js的rules里面添加配置 { test: /\.scss$/, loade ...

  6. postman通过引入外部文件实现参数化

    postman可通过引入外部文件进行参数化 目录 1.准备好接口信息 2.设置 1.准备好接口信息 这里的usr和psw是要参数化的对象 2.设置 文件准备 添加文件,并设置好循环次数即可

  7. vue项目 安装和配置sass & main.js引入scss文件报错

    通过npm 安装 cnpm install --save-dev sass-loader cnpm install --save-dev node-sass 在build文件夹下的webpack.ba ...

  8. 【html】【2】html引入外部文件js css

    1>引入js 我们只是写了简单必须的html标签,从未给标签添加点击事件,这次页面添加事件. >写入html页面,可以在<head>标签内  也可以在<body>标 ...

  9. HTML引入外部文件,解决统一管理导航栏问题。

    1.IFrame引入,看看下面的代码     <IFRAME NAME="content_frame" width=100% height=30 marginwidth=0 ...

随机推荐

  1. PowerDesigner最基础的使用方法入门学习(一)

    1:入门级使用PowerDesigner软件创建数据库(直接上图怎么创建,其他的概念知识可自行学习) 我的PowerDesigner版本是16.5的,如若版本不一样,请自行参考学习即可.(打开软件即是 ...

  2. ubuntu 间简单相互通信

    1.  nc  命令 在一台机器上运行nc -l 来监听本机的2222号端口 另外一台机器就能连接到这台监听的机器上,假设上面那台机器的ip是192. nc 之后就能互相发送字符了 2. iptux通 ...

  3. IP地址基础

    第一台计算机的名字   1946年2月14日,世界上第一台电脑ENIAC在美国宾夕法尼亚大学诞生,名叫ENIAC(爱尼阿克). 第一个网络的名字: arpanet 计算机网络定义: 物理位置不同.功能 ...

  4. F5负载均衡原理(转载)

    https://blog.csdn.net/panxueji/article/details/42647193 一. 负载均衡技术 负载均衡技术在现有网络结构之上提供了一种廉价.有效.透明的方法,来扩 ...

  5. JVM调优原理

    JVM堆栈 栈是运行时的单位,而堆是存储的单位. 栈解决程序的运行问题,即程序如何执行,或者说如何处理数据:堆解决的是数据存储的问题,即数据怎么放.放在哪儿. 在Java中一个线程就会相应有一个线程栈 ...

  6. IDEA Git 配置及使用

    1.下载并安装 Git 2.新建项目 3.配置版本控制器 4.新建github仓库 5.定位到项目根目录,执行命令 创建git仓库时忘记添加 .gitignore 怎么办? vi .gitignore ...

  7. python多进程与服务器并发

    进程 什么是进程 进程:正在进行的一个过程或者说一个任务.而负责执行任务则是cpu. 进程与程序的区别 程序仅仅只是一堆代码而已,而进程指的是程序的运行过程. 并发与并行 无论是并行还是并发,在用户看 ...

  8. MicroMsg.SDK.WXApiImplV10: register app failed for wechat app signature check failed

    支付时: IWXAPI wxapi = WXAPIFactory.createWXAPI(this,WXAPPID,true); 替换为 IWXAPI wxapi = WXAPIFactory.cre ...

  9. python开发学习(元组、字符串、列表、字典深入)

    https://www.cnblogs.com/songqingbo/p/5129116.html(转载学习)

  10. Java8之分组

    数据库中根据多个条件进行分组 ) from tableA group by a, b 现在不使用sql,而直接使用java编写分组,则通过Java8根据多个条件进行分组代码如下: List<Us ...