当前位置: 首页 > 编程日记 > 正文

js 判断js,css是否引入,确保不重复引入

js 判断js,css是否引入,确保不重复引入

(2009-10-31 21:33:44)
转载
标签: 

杂谈

 
分类: js
基本原理:
function loadjscssfile(filename, filetype){
if (filetype=="js"){ //if filename is a external JavaScript file
  var fileref=document.createElement_x('script')
  fileref.setAttribute("type","text/javascript")
  fileref.setAttribute("src", filename)
}
else if (filetype=="css"){ //if filename is an external CSS file
  var fileref=document.createElement_x("link")
  fileref.setAttribute("rel", "stylesheet")
  fileref.setAttribute("type", "text/css")
  fileref.setAttribute("href", filename)
}
if (typeof fileref!="undefined")
  document.getElementsByTagName_r("head")[0].appendChild(fileref)
}

loadjscssfile("myscript.js", "js") //dynamically load and add this .js file
loadjscssfile("javascript.php", "js") //dynamically load "javascript.php" as a JavaScript file
loadjscssfile("mystyle.css", "css") dynamically load and add this .css file

注意点:
默认挂在dom的第一个节点下,要保证不影响原有的页面的逻辑。
防止重复加载。
var filesadded="" //list of files already added

function checkloadjscssfile(filename, filetype){
if (filesadded.indexOf("["+filename+"]")==-1){
  loadjscssfile(filename, filetype)
  filesadded+="["+filename+"]" //List of files added in the form "[filename1],[filename2],etc"
}
else
  alert("file already added!")
}

checkloadjscssfile("myscript.js", "js") //success
checkloadjscssfile("myscript.js", "js") //redundant file, so file not added



我自己写的例子如下:
isexist这个变量要定义在需要引入的js里,用typeof去检测改变量是否存在?如果等于undefined,说明不存在,那就引入外部js,否则,就不引入!
    if(typeof(isexist) == 'undefined')
    {
        var fileref = document.createElement_x('script');
        fileref.setAttribute("type","text/javascript");
         fileref.setAttribute("src","<?php echo $html->url('/')?>js/valide.js");
        document.getElementsByTagName_r("head")[0].appendChild(fileref);
        
    }

转载于:https://www.cnblogs.com/lxg0/articles/5541908.html

相关文章:

Ubuntu18彻底删除MySQL5.7数据库

首先在终端中查看MySQL的依赖项&#xff1a;dpkg --list|grep mysql (有或者没有都可以继续执行) 移除所有mysql公共依赖&#xff1a;sudo apt-get remove mysql-common 卸载&#xff1a;sudo apt-get autoremove --purge mysql-server-5.7 清除残留数据&#xff1a;dpkg -…

软件缺陷处理流程

今天&#xff0c;我们的主任研究了一下我出的软件缺陷处理流程&#xff0c;觉得不严谨&#xff0c;他重新梳理了一个&#xff0c;偶还是觉得自己梳理的比较直接&#xff0c;没有那么复杂。 这里博客记录&#xff0c;用于纪念我的心血&#xff0c;因为说不定哪天偶的这点心血会被…

Linux下tomcat的安装与卸载以及配置(超简单)

无敌简单的几步 1、安装 //首先你需要下载好tomcat包 sudo tar -xvzf apache-tomcat-7.0.85.tar.gz(这里是包名) -C 你要放的位置2、卸载 rm -rf 你的tomcat目录3配置&#xff1a; 进入目录/tomcat/apache-tomcat-8.5.51/bin&#xff0c;编辑文件startup.sh&#xff0c;在…

《创业维艰分享之五》所有得,有所乐,日事日清,循序渐进。

这两个月公司连续做了两个大客户紧接着发布新版本再然后又是连续五个小版本迭代计划。 每天16小时的超强度工作&#xff0c;我已经看到兄弟的脸上都写着一个字&#xff1a;累&#xff01; 我自己又何尝不是&#xff0c;既是客服&#xff0c;又是程序员&#xff0c;还必须是行政…

docker上你必须会的那些命令

一、基础类 查看docker信息 # 查看docker版本 docker version # 显示docker系统的信息 docker info # 日志信息 docker logs # 故障检查 service docker status # 启动关闭docker sudo service docker start|stop二、容器操作命令 1、创建删除容器 # 创建一个容器命名为 te…

iOS开发UI篇—transframe属性(形变)

iOS开发UI篇—transframe属性&#xff08;形变&#xff09; 1. transform属性 在OC中&#xff0c;通过transform属性可以修改对象的平移、缩放比例和旋转角度 常用的创建transform结构体方法分两大类 &#xff08;1&#xff09; 创建“基于控件初始位置”的形变 CGAffineTransf…

docker一步安装mysql,docker的魅力就在于此

正常来说&#xff0c;使用docker安装东西的步骤是serach它有没有&#xff0c;然后pull它 这里其实只要一步&#xff08;如果你没有安装过、没有端口占用等问题的话&#xff01;&#xff01;&#xff09; $ docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORDroo…

python-day05正则表达式

相关参考文档地址:http://bbs.fishc.com/thread-57073-1-1.html&#xff08;小甲鱼论坛&#xff09; 摘录老师之精华 re模块用于对python的正则表达式的操作。 字符&#xff1a; . 匹配除换行符以外的任意字符  \w 匹配字母或数字或下划线或汉字  \s 匹配任意的空白符  \…

Vim编辑器的常用快捷键.

Linux中的文本操作离不开Vim编辑器的使用. Vim编辑器的使用相对门槛较高.需要挺长一段时间的适应. 总结一些Vim使用过程中常用的命令(这些命令基本上都是在vim的命令模式下使用) 1.跳转到文本的开头gg 2.跳转到文本的末尾G (shiftg) 3.查看文本的总共有多少行(:set nu) 关于这个…

在docker上安装部署tomcat项目 超简单,拿来主义

在docker中部署tomcat&#xff0c;非常简单&#xff0c;而且省去了手动安装jdk等步骤&#xff0c;只需要将war包复制在容器tomcat实例中的webapps下面即可。以下将详细讲解流程&#xff1a; 在windows中打好包以后用winSPC拖放到linux系统中&#xff0c;我的直接放在了/home/ub…

docker停止、删除容器、删除镜像 一看就理解

当你的容器中出现问题&#xff08;比如我改坏了文件&#xff09;需要重新部署一台的时候&#xff0c;就需要将这个容器实例删除 接着&#xff1a; #查看当前的容器ID $ docker ps这里你会看到有两列id&#xff0c;一列是镜像id&#xff0c;一列是容器id&#xff0c;我们要分清…

JavaScript对象掺杂点原型

我读完权威指南一部分的理解&#xff0c;对象和原型的关系&#xff1a;任何对象都可以充当原型 转载于:https://www.cnblogs.com/gaizaotuling/p/5553130.html

docker镜像的备份和恢复

在使用docker的时候总会出现这种情况&#xff1a;下载东西很慢很慢&#xff0c;下载完配置完以后&#xff0c;突然&#xff0c;一个地方配置出现了问题&#xff0c;无法恢复&#xff0c;需要重新装载&#xff0c;那么&#xff0c;之前的所有配置、安装、下载都没了&#xff0c;…

黑盒测试方法案例

1.根据下面给出的规格说明&#xff0c;利用等价类进行测试用例的设计。 一个程序读入3个正整数&#xff0c;把这三个数值看作一个三角形的3条边的长度值。这个程序要打印出信息&#xff0c;说明这个三角形是普通的、是等腰的、还是等边的。 a.找出输入输出条件&#xff0c;列出…

Dockerfile 入门看这篇就够了

在使用docker时&#xff0c;有很多像往容器中复制war包、修改容器配置之类的操作&#xff0c;很繁琐&#xff0c;配置失败或异常时就又是一遍重复的操作&#xff0c;这时候&#xff0c;就要用到这个脚本文件–Dockerfile 以下是我对Dockerfile的理解&#xff1a; 1、首先 Docke…

【DSP开发】C6000非多核非KeyStone系列DSP中断系统

C6000系列DSP的中断系统 上一篇介绍了C6455的GPIO系统&#xff0c;最后把GPIO4配置成了中断/事件模式&#xff0c;本文将介绍C6455的中断系统&#xff0c;介绍完基本概念后&#xff0c;给出把GPIO4映射到INT4的代码。 完成了GPIO和中断的配置&#xff0c;我们就可以开始着手DSP…

SVN用法大全,SVN除了update、commit还有什么

svn除了大家都知道的update、commit以外还有什么常用功能呢&#xff1f; 点击TortoiseSVN后&#xff0c;出现了右图的列表&#xff0c;这其中有哪些是常用的功能呢&#xff1f;最近在家办公&#xff0c;有些东西要svn操作&#xff0c;就了解了下。 咱们从上面开始 1、Show log…

递归删除目录下的所有文件

import java.io.File; public class DeleteDirectory { /** * 删除空目录 * param dir 将要删除的目录路径 */ private static void doDeleteEmptyDir(String dir) { boolean success (new File(dir)).delete(); if (success) { System.out.println("Successfully delete…

Web项目使用nginx实现代理端口访问,看这篇就够了

在搭建服务器的时候&#xff0c;项目部署在tomcat上&#xff0c;要访问项目&#xff0c;则需要加上端口号&#xff0c;如何隐藏端口号来访问呢&#xff0c;这就用到了nginx. nginx可以在docker上安装&#xff0c;也可以在linux上安装&#xff0c;这里我建议使用linux&#xff0…

java.lang.Thread使用及总结

1 public class mainThread{2 public static void main(String args[]){3 //第一种方式启动线程4 otherThread otnew otherThread();5 Thread tnew Thread(ot);6 t.start();7 8 //第二种方式启动线程9 itemThread…

linux/docker个人服务器项目中文变问号??,时间差8小时问题解决方法,最新,最有效

前段时间在腾讯云上面买了一台个人服务器&#xff0c;在搭建好web项目的时候&#xff0c;在项目中录入中文&#xff0c;全部变成了问号,时间也错了&#xff0c;百思不得其解&#xff0c;后来我尝试着修改docker编码&#xff0c;修改系统语言&#xff0c;都无法改变。后来我把项…

Android手机指令操作释疑

有人问我一个关于Android手机root与否的问题,她说明明iTools显示已取得root权限,但她就是没法在该手机上运行需要root权限的App如钛备份等等.我告诉她最好的确认方式便是以adb指令进到 /data/data路径之下,再执行 ls –al,若能顺利得到执行结果,而不会提示”Permission denied”…

伍六七带你学算法 入门篇-矩形重叠

力扣解题-----每日一题-836 矩形以列表 [x1, y1, x2, y2] 的形式表示&#xff0c;其中 (x1, y1) 为左下角的坐标&#xff0c;(x2, y2) 是右上角的坐标。 如果相交的面积为正&#xff0c;则称两矩形重叠。需要明确的是&#xff0c;只在角或边接触的两个矩形不构成重叠。 给出…

[摘录]代码优化规则

<<代码优化&#xff1a;有效使用内存>>代码优化建议&#xff1a; 1. 展开读取内存的循环 2. 消除数据相关性 如果请求的RAM单元存在地址数据相关性&#xff08;也就是说&#xff0c;一个单元含有另一个单元的地址&#xff09;&#xff0c;那么CPU不能…

伍六七带你学算法 入门篇-拼写单词

力扣解题&#xff0c;每日一题 1160. 拼写单词 难度- 简单 给你一份『词汇表』&#xff08;字符串数组&#xff09; words 和一张『字母表』&#xff08;字符串&#xff09; chars。 假如你可以用 chars 中的『字母』&#xff08;字符&#xff09;拼写出 words 中的某个『单…

linux内核调优参考

对于新部署的机器&#xff0c;需要做一些基本的调优操作&#xff0c;以更改一些默认配置带来的性能问题 1 修改打开文件数 rootmysql:/data/tools/db# vim /etc/security/limits.conf * soft nofile 65535 * soft nproc 65535…

伍六七带你学算法 入门篇-最长回文串

力扣解题&#xff0c;每日一题&#xff1a;409. 最长回文串 难度- 简单 给定一个包含大写字母和小写字母的字符串&#xff0c;找到通过这些字母构造成的最长的回文串。 在构造过程中&#xff0c;请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。 注意: 假设字符串…

bzoj1095: [ZJOI2007]Hide 捉迷藏 线段树维护括号序列 点分治 链分治

这题真是十分难写啊 不管是点分治还是括号序列都有一堆细节。。 点分治&#xff1a;时空复杂度$O(n\log^2n)$&#xff0c;常数巨大 主要就是3个堆的初始状态 C堆&#xff1a;每个节点一个&#xff0c;为子树中的点到它父亲的距离的堆。 B堆&#xff1a;每个节点一个&#xff0c…

伍六七带你学算法 入门篇-最小的k个数

java面试题-最小的k个数 难度-简单 输入整数数组 arr &#xff0c;找出其中最小的 k 个数。例如&#xff0c;输入4、5、1、6、2、7、3、8这8个数字&#xff0c;则最小的4个数字是1、2、3、4。 示例 1&#xff1a; 输入&#xff1a;arr [3,2,1], k 2 输出&#xff1a;[1,2] …

伍六七带你学算法 进阶篇-三数之和

三数之和 难度-中等 题目&#xff1a;给你一个包含 n 个整数的数组 nums&#xff0c;判断 nums 中是否存在三个元素 a&#xff0c;b&#xff0c;c &#xff0c;使得 a b c 0 &#xff1f;请你找出所有满足条件且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三…