ajax跨域和js跨域解决方案

发表时间:2012-04-16 07:33:02 文章分类:JavaScript 阅读:54803
ajax跨域和JS的跨域通信(Cross The Site)的几种解决方案 最近做的一个项目中需要ajax跨域取得数据,如果是在本域中确实没有问题,但是放到二级域和其他域下浏览器直接就弹出提示框:“该页正在1.什么引起了ajax跨域不能的问题ajax本身实际上是通过XMLHttpRequest对象来进行数据的交互,而浏览器出于安全考虑,不允许js代码进行跨域操作,所以会警告。2.有什么完美的解决方案么?没有。解决方案有不少,但是只能是根据自己的实际情况来选择。具体情况有:一、本域和子域的相互访问: www.aa.com和book.aa.com二、本域和其他域的相互访问: www.aa.com和www.bb.com 用 iframe三、本域和其他域的相互访问: www.aa.com和www.bb.com 用 XMLHttpRequest访问代理四、本域和其他域的相互访问: www.aa.com和www.bb.com 用 JS创建动态脚本解决方法:一、[span style="color:#4169E1;"]如果想做到数据的交互,那么www.aa.com和book.aa.com必须由你来开发才可以。可以将book.aa.com用iframe添加到www.aa.com的某个页面下,在www.aa.com和iframe里面都加上document.d

JavaScript中防止函数名/类名和其他人的冲突之命名空间的实现

发表时间:2012-03-05 09:20:15 文章分类:JavaScript 阅读:83273
如何防止函数名/类名和其他人的冲突,在一个内部项目组之间可以通过命名预定(比如加前缀等)解决这个问题,但是放到整个软件开发领域,这个问题却依然存在。在使用多个第三方框架或类库的时候,你唯一能作的就是祈祷它们的命名不要冲突,如果真正发生这种灾难的话,你唯一能作的就是放弃其中一个。命名空间的引入相当程度上解决了这个问题,当然,你使用的命名空间也要避免和其他公司一样。。 从事Web开发不可避免要接触JavaScript,目前最新版本的JavaScript还是不支持命名空间,所以命名冲突的问题凸显无疑,想象一下你引用了两个js文件,却发现由于命名问题导致你不得不放弃其中一个,从而导致多写了许多代码,无疑是十分令人沮丧的。 实现前提:与Delphi、C#等语言不同,JavaScript中的类并不是对象的定义,事实上JavaScript中并不存在真正的类,这里的类实际上是用函数模拟实现的,而JavaScript中的函数实际上是一个对象,因此在JavaScript中:一个类就是一个对象。这和传统概念概念极为不同,在JavaScript中,创建某个类的实例实际上就是将类(=对象,记住)复制了一份。看到这里,有点设计模式概念的应该就可以看出来了,在JavaScript中,类机制使用了原型(prototype)模式。 实现原理:既然看清楚了类的本质,那么问题就简单了,如果将CaoYu项目组所有JS类和函数作为属性放在名为CaoYu的对象里面,然后将CaoYu对象以属性的方式放在名为Rating对象里面不就可以达到我们的目的,比如Rating.CaoYu.Person实际上是在Rating对象的属性CaoYu(也是一个对象)中的类Person(还是一个对象)。 实现非常简单,整个命名空间机制的实现不超过20行代码,分析如下:[mycode=Ja

引用外部jquery包

发表时间:2011-06-24 12:17:04 文章分类:JavaScript 阅读:6686
有不少cdn可以用,再就是google也提供了可以引用的jquery类库链接http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.jshttp://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js写这篇文章的目的是一旦引用外部的时候失败了那就没法用了,这里有一个法子可以参考一下
!window.jQuery && document.write('')  

正则匹配一段文本中URL

发表时间:2011-05-27 01:57:15 文章分类:JavaScript 阅读:2543
在项目中有个这样的设计,备注中的URL自动识别为点击的链接,对此的处理方式是用正则匹配出URL部分,然后替换成URL这样即可。其主要部分是正则匹配出URL部分。假设有这么一段文本。
你好,我是一段文本。我链接到http://bestlovesky.com/test.html请大家多多指教。
那么我们可以这么写。
var text = "你好,我是一段文本。我链接到http://bestlovesky.com/test.html请大家多多指教。";var regexp = /((http|ftp|https|file)://([w-]+.)+[w-]+(/[w-./?@%!&=+~:#;,]*)?)/ig;text = text.replace(regexp,"$1");console.log(text);
但是如果URL中带有中文,那么以上的就不顶事了。 虽然我们不应该用中文作为URL的一部分,已经把中文部分encode掉,但是很多人比如粗心的写wordpressd的人,通常不指定Slug,那么很多URL自然也就带上了标题的中文了。比如:假设有这么一段文本。
你好,我是一段文本。我链接到http://bestlovesky.com/这是一篇测试.html 请大家多多指教。
那么应该把正则改成这样[mycode=Javascript]var text

javascript禁用按键

发表时间:2011-05-25 10:23:14 文章分类:JavaScript 阅读:4903
[mycode=Javascript]   //处理键盘事件 禁止后退键(Backspace)密码或单行、多行文本框除外 function banBackSpace(e){           var ev = e || window.event;//获取event对象         var obj = ev.target || ev.srcElement;//获取事件源               var t = obj.type || obj.getAttribute('type');//获取事件源类型              //获取作为判断条件的事件类型      var vReadOnly = obj.getAttribute('readonly');       var vEnabled = obj.getAttribute('enabled');      //处理null值情况      vR

JavaScript 获取客户端计算机硬件及系统信息

发表时间:2011-05-25 10:18:45 文章分类:JavaScript 阅读:29104
JavaScript 获取客户端计算机硬件及系统信息[mycode=Javascript]//系统信息获取     function getSysInfo() {         var locator = new ActiveXObject ("WbemScripting.SWbemLocator");          var service = locator.ConnectServer(".");          //CPU信息         var cpu = new Enumerator (service.ExecQuery("SELECT * FROM Win32_Processor")).item();          var cpuType=cpu.Name,hostName=cpu.SystemName;         //内存信息         var memory = new Enumerator (service.ExecQuery("SELECT * FROM Win32_PhysicalMemory"));        for (

www与不带www的通用cookie域设置

发表时间:2011-05-10 07:58:15 文章分类:JavaScript 阅读:26416
用setcookie方法时,如果不显式地指定域,则默认是当前域名。如www.bestlovesky.com与bestlovesky.com,用这两个网址访问,他们的cookie是不通用的,因为这被当成了两个不同的域名。我们可以指定域名来让两者的cookie通用:
setcookie('info', $str, time()+($rd*24*60*60), '/', '.bestlovesky.com');
注意域名前面有个点

flash js Fusioncharts 参数

发表时间:2011-04-17 18:21:41 文章分类:JavaScript 阅读:28591
objects ANCHORS 锚点 用于标识line或area的数值点 支持效果 Animation 动画、Shadow 阴影、Glow 发光、Bevel 倾斜、Blur 模糊 动画属性 _alpha、_x、_y、_xScale、_yScale BACKGROUND 整个图表的背景 支持属性 Animation、Shadow、Glow、Bevel、Blur 动画属性 _alphaobjectsANCHORS 锚点 用于标识line或area的数值点支持效果 Animation 动画、Shadow 阴影、Glow 发光、Bevel 倾斜、Blur 模糊动画属性 _alpha、_x、_y、_xScale、_yScaleBACKGROUND 整个图表的背景支持属性 Animation、Shadow、Glow、Bevel、Blur动画属性 _alpha、_x、_y、_xScale、_yScaleCANVAS 区域图中的区域支持属性 Animation、Shadow、Glow、Bevel、Blur动画属性 _alpha、_x、_y、_xScale、_yScaleCAPTION 图表标题SUBCAPTION 图表子标题支持属性 Animation、Shadow、Glow、Bevel、Blur、Font 字体动画属性 _alpha、_x、_yDATALABELS 数据的x轴标签列表支持属性 Animation、Shadow、Glow、Bevel、Blur、Font 字体动画属性 _alpha、_x、_yDATAPLOT 数据细节(如:2D图表中的列)支持属性 Animation、Shadow、Glow、Bevel、Blur动画属性 _alpha、_x、_y、_xScale、_yScaleDATAVALUES 图表数据支持属

一个快速排序的动态演示

发表时间:2011-04-08 09:13:28 文章分类:JavaScript 阅读:8019
这个演示对比了气泡排序直接选择排序Shaker排序(气泡排序的升级版)插入排序希尔排序快速排序归并排序堆排序猴子排序这个程序是一个日本的程序写的,比较有意思,分享给大家查看演示

jQuery的事件处理程序队列

发表时间:2011-03-25 09:04:18 文章分类:JavaScript 阅读:7059
在jQuery的顺序绑定一个处理程序是在其中,他们将被处死,如果您绑定到同一个元素的顺序。例如:
$('#div1').bind('click',function(){// code runs first}); $('#div1').bind('click',function(){// code runs second});
但如果我想要第二绑定代码先运行?我目前的解决方案目前,我的解决办法是修改事件队列:[mycode=Javascript]$.data(domElement, 'events')['click'].unshift({                            type : 'click',                            guid : null,                   &n

Js计算指定日期加上多少天、加多少月、加多少年的日期

发表时间:2010-12-20 09:37:06 文章分类:JavaScript 阅读:62111
[mycode=Javascript]function   DateAdd(interval,number,date){/*  *   功能:实现VBScript的DateAdd功能.  *   参数:interval,字符串表达式,表示要添加的时间间隔.  *   参数:number,数值表达式,表示要添加的时间间隔的个数.  *   参数:date,时间对象.  *   返回:新的时间对象.  *   var   now   =   new   Date();  *   var   newDate   =   DateAdd( "d ",5,now);  *---------------   DateAdd(interval,number,date)   -----------------  */        switch(interval)        {              &

js日期时间函数

发表时间:2010-12-20 03:04:04 文章分类:JavaScript 阅读:13163
Date.prototype.isLeapYear 判断闰年Date.prototype.Format 日期格式化Date.prototype.DateAdd 日期计算Date.prototype.DateDiff 比较日期差Date.prototype.toString 日期转字符串Date.prototype.toArray 日期分割为数组Date.prototype.DatePart 取日期的部分信息Date.prototype.MaxDayOfDate 取日期所在月的最大天数Date.prototype.WeekNumOfYear 判断日期所在年的第几周StringToDate 字符串转日期型IsValidDate 验证日期有效性CheckDateTime 完整日期时间检查daysBetween 日期天数差[mycode=Javascript]//---------------------------------------------------  // 判断闰年  //---------------------------------------------------  Date.prototype.isLeapYear = function()   {       return (0==this.getYear()%4&&((this.getYear()%100!=0)||(this.getYear()%400==0)));   }     //---------------------------

JS实现类似PHP的strstr功能,在字符串中查找字符串

发表时间:2010-12-15 08:09:25 文章分类:JavaScript 阅读:17855
[mycode=Javascript]function strstr(haystack, needle, bool){   var pos = 0;        haystack += '';    pos = haystack.indexOf( needle );        if (pos == -1) {        return false;    } else{        if (bool) {            return haystack.substr( 0, pos );               } else{            return haystack.slice( pos );        }    }}var so

JS模拟php的sizeof,计算Object对象的长度

发表时间:2010-12-10 06:27:19 文章分类:JavaScript 阅读:20226
JS模拟php的sizeof,计算Object对象的长度length示例代码如下
  Object.size = function(obj) {    var size = 0, key;    for (key in obj) {      if (obj.hasOwnProperty(key)) size++;    }    return size;  };       var x_obj = new Object();    x_obj[0] = 1;    x_obj[1] = 2 ;    var x_total_length = Object.size(x_obj) ;    alert(x_total_length);

js查看Object对象的内容

发表时间:2010-12-10 06:27:00 文章分类:JavaScript 阅读:22303
个人最常用最简单的就是转成字符串形式alert一下,例如
   var x_obj = new Object();    x_obj[0] = 1;    x_obj[1] = 2 ;   alert(x_obj.toSource());
12下一页