标签为: "ajax" 的文章

使用hash来实现Ajax前进后退

Ajax应用中容易导致浏览器的前进后退按钮失效,不产生前进后退功能,在本文中断桥残雪就通过改变location.hash值来解决Ajax过程中导致的浏览器前进后退按键失效的问题,此方法兼容IE6+,Firefox,chrome,Safari,Opera等浏览器。

在去年断桥残雪已经写了一篇使用iframe来解决Ajax前进后退的方法,也提到了通过改变hash的方法来解决这个问题,这也是比较方便的方法,而使用iframe实现Ajax前进后退可以在不改变浏览器地址栏地址的前提下通过iframe地址的变化来“欺骗”浏览器产生前进后退,hash的方法则是直接改变浏览器地址栏地址,从而使浏览器产生前进后退。

hash导致浏览器产生前进后退原理

浏览器URL的hash值,指的是URL地址之后的#hash部分,我们可以通过JavaScript的location对象的location.hash方法来获得或者改变,但是IE中,不能设置,好像是IE中只能通过连接来实现hash的改变,不过我们可以通过jQuery插件hashchange中的$.locationHash函数来解决这个问题。

比如一个页面的地址是:http://www.js8.in/#top,那么这个页面的location.hash=”#top”,如果要改变这个地址的hash,可以给location.hash赋值,如:location.hash=”#home”,在IE下可以使用hashchange函数中$.locationHash(hash)给hash赋值。在日常我们常见的使用hash应用中,hash值使用最多的方式是 “返回顶部” 功能。
阅读更多…

2010年1月26日

用document.domain+iframe实现Ajax跨子域

Ajax跨域一直是个比较麻烦的问题,例如:断桥残雪在一个项目中使用了open打开一个跟父窗口不同域名的新页面,结果子窗口就不能传值给父窗口了;再如:我在www.2fool.cn下不可以获取love.2fool.cn域名下的页面内容。浏览器的跨域限制是为了安全,可是当我们想要在一个域名下请求另外一个域名的内容的时候就感觉不那么爽了。

我在WordPress天气插件滔滔API接口处理上都使用了JSONP的方法来实现的跨域。而今天我要通过使用JS的document.domain和iframe来解决Ajax跨子域的问题

原理

通过给主页面跟请求页面设置相同的document.domain来,欺骗浏览器,达到Ajax跨子域的效果,此方法在IE,chrome,Firefox,Safari,Opera下测试通过。

缺点:无法实现不同主域名之间的通讯。并且当在一个页面中还包含有其它的iframe时,会产生安全性异常,拒绝访问。
阅读更多…

2010年1月9日

推荐六个在线制作Loading图标的网站

经常来我的博客的而且细心的童鞋可以看见我的网站侧边栏加上了天气预报插件,这是我自己写的,代码稍后放出,写的时候需要一个Loading的gif,于是上网找生成Loading图标的网站,这里我推荐六个网站,希望大家喜欢~

1、Ajax Load

Ajax Load 在线loading图标制作网站

Ajax Load 在线loading图标制作网站

Ajax Load所提供的种类丰富,也可以自定义Loading图标样式,推荐!

2、Load Info

Load Info loading图标网站

Load Info loading图标网站

Load Info在线制作Loading图标的免费网站,目前Load Info网站提供了90多种(总有一种适合你)动态图标。而且每种图标都自定义背景色和前景色,更有三种不同的尺寸可以选择,包括 16×16, 24×24, 48×46,很是方便实用。
阅读更多…

2009年12月10日

关于Ajax在浏览器中产生前进后退的实现方法

关于Ajax在使用中要使浏览器产生前进后退的方法,网上比较多的方法有两种:一是采用hash值的方式,这是我们在地图preview版中使用的方法(采用jQuery的history插件);二是使用iframe的方法,目前百度地图、Google地图采用。为使我们以后的mymap方便引用到博客等网页内容中去,并且给地图添加复制链接的方法,我们决定把地图中Ajax在浏览器产生前进后退的方法改变为iframe的方法。

实现的机制

主要使用的两个html:index.html,history.html(iframe src地址)。
主要代码参考index.html以及history.html的js部分:

现在说说实现的方式

Index.html中代码解释:
wHistory.init();
给body插入iframe跟一个表单(主要用于Safari浏览器、或者其他特殊使用,比如复制地址方面,直接取值input的value即可,不需要处理,而取iframe的src还要进行字符串的处理)

判断是否为Safari浏览器,如果是则特殊处理一下,根据不同的浏览器定义main函数

Callback函数处理返回的信息。
阅读更多…

2009年10月30日

万众期待的Ajax评论发布啦-dedecms扩展工具

今天中午终于把Ajax分页问题解决啦~标志着Ajax评论正式上线啦~同时我答应网友要发布的Ajax评论也要发布啦~
好多衣服在水里泡着还没洗呢~晚上上完自习到了九点半就匆匆的回寝室~你说我容易吗?!我还要考研啊~(*^__^*) 嘻嘻……
对于Ajax post乱码问题我是这样解决的~
首先Ajax post提交的是utf-8的格式,而对于GBK的用户是个损失,我使用的是iconv函数转码的~
提交的时候用iconv("UTF-8","GB2312",$msg); 和iconv("UTF-8","GB2312",$username);转码了提交的评论内容和用户名字~
分页问题我是写了个代码添加到了GetAgaxPageList函数,根据官方的GetPageList函数写的~

PS:欢迎大家和我交换友情链接,点击首页的“申请链接”提交就可以啦~

具体的使用方法和注意事项是:
1.打开 include/pub_datalist_dm.php  找到“//获取分页列表”,在其前添加上下面代码:

阅读更多…

2008年11月19日

垃圾违禁评论自动屏蔽功能上线~

今天更新了一个功能,垃圾违禁评论屏蔽功能~具体的内容是写了个PHP的文件,内置了要屏蔽的关键字,然后通过require_once(dirname(__FILE__)."/../include/notallowword.php");调用,再用函数eregi_replace来替换成***星号~
具体的使用方法请参照文章:http://www.js8.in/blog/wangluojishu/20081118/55.html
今天彻底解决了GBK下Ajax评论转码问题,防止出现了乱码~测试地址是:http://down.2fool.cn
明天发布!谢谢大家的支持,我要考研所有有点忙哦~(*^__^*) 嘻嘻……

2008年11月18日