三种方式解决你的js加载乱码
第一种方式——编码统一
我们以前觉得出现乱码的原因是因为编码不统一,就是因为我们设置编码统一之后,就解决了问题,所以,让html和js的编码统一,是最简单的一个乱码解决方式,原因是什么,是因为,如果你在加载js的时候,并没有声明js的编码格式,那么浏览器会默认的按照当前html的编码格式进行解析引入的js文件,如果你的js和本身页面编码不一样,并且js中引入了中文字符,那么肯定会出现乱码的。要知道,程序都是笨笨的。
第二种方式——在引入js的标签中加入charset属性
这样引入,那么这个xx.js就会以本身页面的编码进行解析,而如果两个的编码不一样,如果这个js是gbk的编码,那么我们可以这样写
<script src="../../lib/Plugins/datepicker_lang_zh_CN.js" charset="utf-8" type="text/javascript"></script>
那么,只要是保证这个js文件的确是gbk或者对应的,你自己写的编码,那么无论在哪种编码的页面中引用这个js,都不会出现编码问题,这样写才是最规范的,第一种方式会出现一种情况,就是有很少情况下,由于一些不规范的原因,我们会发现即使是编码统一的时候,也会出现乱码,那么我们最好就是用第二种方式来写。
第三种方式——用服务器语言声明header头信息
这种方式是比较少见的一种方式,适合某些特定的情况。编码信息都是在头信息中声明的。而js本身并没有像html mate标签这样的声明头信息的标签,所以要借助服务器语言,我是学php的,其header(“Content-Type:text/html;charset=gb2312″);就可以声明头信息,而如何写这个js,就是把js内容写在php文件中,这里就有一个知识点,就是js文件并不一定非写在js为后缀的文件中,其实可以写的服务器文件(php文件等)中,php以<? ?>来包括服务端解析的代码,而之外的或者echo输出的代码都会发送到客户端,所以,我们将js代码写到<??>外部或者直接echo出来,那么这个js代码同样可以起作用,这就是我们会发现,我们很多接口等程序,明明是script标签,引入的却是一个php文件,或者其他的服务端文件,就是这个道理,这样来做,就更加的灵活了,因为我们可以借助服务端语言,进行读取数据库等等更为复杂的操作,让这个js代码更加多样也更加灵活,实现更加复杂的功能,比如我们
|
1
|
<script type="text/jscript" charset="gbk" src="xx.php"></script>
|
在这个xx.php写
|
1
2
3
4
|
<?
$ip = getenv('REMOTE_ADDR');
echo "alert($ip);";
?>
|
这样我们访问这个html页面,就会弹出ip地址,我们就可以对他进行其他操作等。当然,既然是连接服务端文件,就不能是直接双击打开这个html了,一定是通过浏览器访问才可以,或者是连接这个php文件的src要写http形式,目的就是保证这个php文件要是通过服务器解析访问的,如果你这样写相对目录的形式连接php,你直接打开html,就相当于直接打开了这个php文件,而不是通过http访问的,这个php是不能被解析的。讲的复杂了,但是这是一个很重要的知识点。如果单从乱码而言,这种引用js文件的方式适合我们已经引用了,不能再修改这个引用文件了,比如我们在一些外链站发了文章,不能再修改了,那么,我们可以修改连接的我们网站上的这个js文件,当前前提是,连接的是服务端文件,我们就可以通过这样的方式解决。
三种方式解决你的js加载乱码的更多相关文章
- Android 三种方式实现自定义圆形页面加载中效果的进度条
转载:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=76872 一.通过动画实现 定义res/anim/loading.xml如 ...
- javascript中定义事件的三种方式 分类: C1_HTML/JS/JQUERY 2014-08-07 10:27 634人阅读 评论(0) 收藏
在javascript中,可以为某个元素指定事件,指定的方式有以下三种: 1.在html中,使用onclick属性 2.在javascript中,使用onclick属性 3.在javascipt中,使 ...
- 解读DbContext中的三种【EagerLoad,LazyLoad,ExplicitLoading】加载模式
一:立即加载,延迟加载,显式加载 1. 立即加载 Student Domain{ Teacher theacher} using (SchoolDBEntities db = new SchoolDB ...
- 前端js,css文件合并三种方式,bat命令
前端js,css文件合并三种方式,bat命令 前端js文件该如何合并三个方式如下:1. 一个大文件,所有js合并成一个大文件,所有页面都引用它.2. 各个页面大文件,各自页面合并生成自己所需js的大文 ...
- js replace 全局替换 以表单的方式提交参数 判断是否为ie浏览器 将jquery.qqFace.js表情转换成微信的字符码 手机端省市区联动 新字体引用本地运行可以获得,放到服务器上报404 C#提取html中的汉字 MVC几种找不到资源的解决方式 使用Windows服务定时去执行一个方法的三种方式
js replace 全局替换 js 的replace 默认替换只替换第一个匹配的字符,如果字符串有超过两个以上的对应字符就无法进行替换,这时候就要进行一点操作,进行全部替换. <scrip ...
- js异步执行 按需加载 三种方式
js异步执行 按需加载 三种方式 第一种:函数引用 将所需加载方法放在匿名函数中传入 //第一种 函数引用 function loadScript(url,callback){ //创建一个js va ...
- JS异步加载的三种方式
js加载的缺点:加载工具方法没必要阻塞文档,过得js加载会影响页面效率,一旦网速不好,那么整个网站将等待js加载而不进行后续渲染等工作. 有些工具方法需要按需加载,用到再加载,不用不加载,. 默认正常 ...
- js学习-DOM之动态创建元素的三种方式、插入元素、onkeydown与onkeyup两个事件整理
动态创建元素的三种方式: 第一种: Document.write(); <body> <input type="button" id="btn" ...
- JavaScript 基础——使用js的三种方式,js中的变量,js中的输出语句,js中的运算符;js中的分支结构
JavaScript 1.是什么:基于浏览器 基于(面向)对象 事件驱动 脚本语言 2.作用:表单验证,减轻服务器压力 添加野面动画效果 动态更改页面内容 Ajax网络请求 () 3.组成部分:ECM ...
随机推荐
- windows下mysql5.7 root密码重置
1.在mysql根目录下新建配置文件my.ini(因为我安装的mysql-5.7.24安装完成后未看到该配置文件,所以新建一个,有的直接修改即可) [mysqld] skip-grant-tables ...
- [java,2017-12-01] 播放音频文件
废话不多说,直接上代码 jar包 <!-- 2017-12-01音频播放jar包 --> <dependency> <groupId>javazoom</gr ...
- 使用Git将项目上传到GitHub管理
首先你需要一个github账号.https://github.com/ 我们使用git需要先安装git工具. 1.进入Github首页,点击New repository新建一个项目 2.填写相应信息后 ...
- NEU(Fst Network Embedding Enhancement via High Order Proximity Approximation)
NEU(Fst Network Embedding Enhancement via High Order Proximity Approximation) NEU:通过对高阶相似性的近似,加持快速网络 ...
- PostgreSQL (简称gp)小集
1. SQLyog & Navicat SQLyog可以管理 MySQL Navicat 可以管理 SQL Server,MySQL,PostgreSQL,SQLite 2. 日期及加减 no ...
- <转载> FreeNAS的安装和简单配置 http://freenas.cn/?p=342
前些日子在公司搭了一个模拟生产环境的平台.由于是测试环境,资源有限只能使用虚拟机实现,所以存储这块就想到了使用FreeNAS.很早以前玩儿过几次,当时是生产环境需要上存储设备,经过对比还是选择的更可靠 ...
- GPUImage中对比度调整的实现——GPUImageContrastFilter
对比度指的是一幅图像中明暗区域最亮的白和最暗的黑之间不同亮度层级的测量,差异范围越大代表对比越大,图像越鲜亮,差异范围越小代表对比越小,图像越灰. GPUImage中实现了对比度调整的Filter,其 ...
- hive 动态分区实现 (hive-1.1.0)
笔者使用的hive版本是hive-1.1.0 hive-1.1.0动态分区的默认实现是只有map没有reduce,通过执行计划就可以看出来.(执行计划如下) insert overwrite tabl ...
- 16. js方法传多个参数的实例
field : 'operate',width : fixWidth(1/6),title : '操作',align : 'center',formatter : function(id,rowDat ...
- <基础> PHP 进阶之 类(Class)
属性 类的变量成员叫做“属性”,或者叫“字段”.“特征”,在本文档统一称为“属性”.属性声明是由关键字 public,protected 或者 private 开头,然后跟一个普通的变量声明来组成.属 ...