2019独角兽企业重金招聘Python工程师标准>>>

Js文件中调用其它Js函数的方法

  在项目开发过程中,也许你会遇这样的情况。在某一Js文件中需要完成某一功能,但这一功能的大部分代码在另外一个Js文件中已经完成了,自己只需要调用这个方法再加上几句代码就可以实现所需的功能。我们知道,在html中,利用
<script language="javascript" type="text/javascript" src="../script.js"></script>
引入的两个js是不可以相互调用的。那么该如何解决呢?当然,你可以将代码通通copy过来,这样会让你的b.js会变得很长,也许已经影响到了你对b.js的定位了,检查,维护都会变得麻烦.
  例如有这样一个html,里面有一个按钮,当按下时调用b.js文件中的方法b()。而b()中又要调用a.js文件中的方法a()。那我们应该怎么做呢?
  首先,我们在html中引入b.js,并在</body>之后加入引用语句。必须注意,将要引入的Js文件代码放在</body>下面。

<html><body><input type="button" value="ok" onclick="javascript:b()"></body><!--这里引用要放在body下面--><script language="JAVASCRIPT" src='b.js'></script></html>

 b.js文件中引入a.js,内容如下:

new_element=document.createElement("SCRIPT");
new_element.setAttribute("type","text/javascript");
new_element.setAttribute("src","a.js");// 在这里引入了a.js
document.body.appendChild(new_element);function b()  {a();
}

 在b.js文件中前4行代码中我们引入了a.js文件,并在第7行代码中调用了a.js代码中的a()方法。

  让我们来分析一下关键的几句代码:首先,我们利用document.createElement_x("script")生成了一个script的标签,设置其type属性为text/javascript,src为a.js(这里的a.js同b.js放在同一个目录,也可放在不同的目录)。最后将这个标签动态地加入body中。如此一来,我们就可以调用到不同js文件中的方法了。

注意:<script language="JAVASCRIPT" src='b.js'></script>一定要放在body下面。
因为在b.js中用到了body(document.body.appendChild(new_element);) 
如果将引如b.js的代码放在body上面,也就是说, 
进入页面后,还没有生成body就已经执行b.js里的document.body.appendChild(new_element);了。 
这时body不存在就会抛javascript错误。

转载于:https://my.oschina.net/airship/blog/800799

Js文件中调用其它Js函数的方法(转)相关推荐

  1. Js文件中调用其它Js函数的方法

    2019独角兽企业重金招聘Python工程师标准>>> Js文件中调用其它Js函数的方法 在项目开发过程中,也许你会遇这样的情况.在某一Js文件中需要完成某一功能,但这一功能的大部分 ...

  2. asp.net中调用javascript自定义函数的方法(包括引入JavaScript文件)总结

    通常javascript代码可以与HTML标签一起直接放在前端页面中,但如果JS代码多的话一方面不利于维护,另一方面也对搜索引擎不友好,因为页面因此而变得臃肿:所以一般有良好开发习惯的程序员都会把ja ...

  3. vue怎么调用子元素的方法_vue 父组件中调用子组件函数的方法

    vue 父组件中调用子组件函数的方法 在父组件中调用子组件的方法: 1.给子组件定义一个ref属性.eg:ref="childItem" 2.在子组件的methods中声明一个函数 ...

  4. 外部js文件中调用pinia时,报错getActivePinia was called with no active Pinia. Did you forget to install pinia?

    分析原因:是pinia在main.js中还未注册好,便在其他文件中使用了它. 正确引用: src/stores/index.js文件 import { createPinia } from 'pini ...

  5. Nuxt 项目引入外部Js的正确姿势 ,问题描述:打包构建之后引入的外部 js失效,构建之后的 .nuxt 文件夹下的js文件中,引入 js 的script标签凭空消失!

    首先先说我遇到的问题描述:       我是用vue + nuxt项目,项目中使用了阿里播放器,于是我在vue页面中直接引入了阿里播放器的 css和js文件,然后运行没有任何问题:如下图所示: 但是! ...

  6. 在js文件中引用别的js文件的方法

    在js文件中用如下语句: document.write('<script src="abc.js"></script>'); 引用CSS文件亦同理.

  7. jquery getjson php,jquery中调用php json函数的方法分享

    PHP 5.2版本之后,默认增加了一组针对数据进行JSON互转的函数: json_encode :数据到JSON json_decode :JSON到PHP变量的转换 本文用一个实例讨论一下PHP 的 ...

  8. js文件中调用另一个js文件:

    document.write("<script language='javascript' src='/UEditor/uparse.js'></script") ...

  9. 对JS文件中每个函数单独混淆加密

    自动化脚本:单独对JS代码中的每个函数进行混淆加密 用自动化脚本工具,对JS代码中的每个函数分别进行单独混淆加密.这样加密得到的JS代码,比直接对整个JS代码进行混淆加密,效果要好很多.所谓" ...

最新文章

  1. centos6.3 nginx php,CentOS 6.3 编译安装Nginx+MySQL+PHP
  2. 威斯康辛大学《机器学习导论》2020秋季课程完结,课件、视频资源已开放
  3. recyclerview 滑动到当前_Android recyclerview的滑动到指定的item
  4. windows下安装nginx
  5. 图像处理之基础---傅里叶
  6. (装载)C#中AppDomain.CurrentDomain.BaseDirectory与Application.StartupPath的区别
  7. android 点击热区,增大UIButton的点击热区
  8. linux下的Apache2 + mysql5 + php5 源码完整安装详解
  9. Python2 包的安装
  10. 【ST4】Java 中的模板引擎 StringTemplate
  11. Kerberos 协议和 KDC 实现 Apache Kerby
  12. 跨域调用webapi web端跨域调用webapi
  13. Linux 系统安装 AutoFs 挂载服务
  14. 【存储】什么是纠删码(与纠错码的区别)|纠删码与副本对比|LDPC码
  15. css 设置背景图一半_CSS背景颜色 背景图片 居中 重复 固定样式background经验篇
  16. angular实现国密算法sm2、sm3和sm4的ts版,基于sm-crypto库实现,前后端实现
  17. 奥林匹克计算机竞赛保送,电脑奥赛中最寂寥的竞赛 5学生夺牌直通清华
  18. mapboxgl地图分屏
  19. 「打卡」Coggle 30 Days of ML(23年2月)
  20. ESP8266-WIFI模块使用AT指令连接外网服务器

热门文章

  1. 运算符重载(加减运算符、前置加加(减减)后置加加(减减)运算符、赋值运算符、输入输出运算符、关系运算符、函数调用)
  2. java泛型中的标记,Java泛型中的标记符含义
  3. Ubuntu下 Hadoop 1.2.1 配置安装
  4. Set的常用实现类HashSet和TreeSet
  5. smarty课程---smarty3的安装和使用
  6. hihocoder1398 网络流五之最大权闭合子图
  7. Android ---------高德卫星地图绘制多个点和点的点击事件自定义弹窗
  8. Django实现的博客系统中使用富文本编辑器ckeditor
  9. SQL Server 2008 R2 中不能删除复制(replication) 的解决方法
  10. 高性能SQLServer通用分页存储过程