搜索本站
-
近期文章
文章分类
- Ajax (8)
- Css (4)
- C语言 (1)
- Eclipse (2)
- git (6)
- hadoop (4)
- hbase (3)
- Hibernate (2)
- Java Web (9)
- Javascript (12)
- Linux (18)
- Macos (1)
- Mysql (9)
- Nosql (12)
- Oracle (5)
- Php (47)
- php7升级 (1)
- Python (1)
- Struts2 (4)
- svn (3)
- Uchome (4)
- Wap (2)
- Webservice (2)
- Zendframework (3)
- 公开课 (1)
- 工作总结 (6)
- 心情随笔 (7)
- 扯淡 (1)
- 服务器端 (13)
- 生活 (8)
- 网络基础 (3)
- 错误集锦 (4)
- 默认分类 (24)
文章归档
- 2017 年三月 (2)
- 2016 年十一月 (1)
- 2016 年八月 (1)
- 2016 年一月 (1)
- 2015 年九月 (9)
- 2015 年八月 (5)
- 2015 年七月 (2)
- 2015 年五月 (1)
- 2015 年四月 (3)
- 2015 年二月 (1)
- 2015 年一月 (3)
- 2014 年十二月 (4)
- 2014 年十一月 (1)
- 2014 年八月 (5)
- 2014 年七月 (3)
- 2014 年五月 (5)
- 2014 年四月 (7)
- 2014 年三月 (2)
- 2014 年二月 (3)
- 2014 年一月 (1)
- 2013 年十二月 (1)
- 2013 年十一月 (10)
- 2013 年八月 (1)
- 2013 年七月 (2)
- 2013 年五月 (3)
- 2013 年三月 (1)
- 2012 年十二月 (2)
- 2012 年十一月 (2)
- 2012 年九月 (1)
- 2012 年八月 (1)
- 2012 年七月 (3)
- 2012 年六月 (1)
- 2012 年五月 (2)
- 2012 年四月 (1)
- 2012 年三月 (10)
- 2012 年二月 (2)
- 2012 年一月 (1)
- 2011 年十一月 (1)
- 2011 年十月 (6)
- 2011 年九月 (8)
- 2011 年八月 (5)
- 2011 年七月 (1)
- 2011 年六月 (5)
- 2011 年五月 (2)
- 2011 年三月 (1)
- 2011 年二月 (10)
- 2011 年一月 (3)
- 2010 年十二月 (4)
- 2010 年十一月 (4)
- 2010 年十月 (2)
- 2010 年九月 (1)
- 2010 年八月 (10)
- 2010 年七月 (7)
- 2010 年六月 (1)
- 2010 年四月 (6)
- 2010 年三月 (3)
- 2010 年二月 (3)
- 2010 年一月 (1)
- 2009 年十二月 (1)
- 2009 年十月 (7)
- 2009 年九月 (15)
- 2009 年八月 (7)
- 2009 年七月 (7)
标签云
近期评论
友情链接
月归档:2011 年六月
解决utf-8编码页面js读取cookie乱码
点击按钮,根据判断cookie里是否有用户名判断弹出登陆框还是二次确认密码框,最开始想到用就是js读取cookie,从网上抄了一段代码 //读取cookies function getCookie(name) { var arr,reg=new RegExp(“(^| )”+name+”=([^;]*)(;|$)”); if(arr=document.cookie.match(reg)){ return decodeURIComponent(arr[2]); //return unescape(arr[2]); }else{ return null; } } 发现中文乱码,后来就想到直接从php里面读取了cookie传值给页面的js解决了。。。 今天有人反馈说登陆了出来的还是登陆框,后来分析了一下,是因为他可能是打开这个页面,去其他站点登陆(几个站点用uc做的同步登陆设置cookie),然后再回到这个页面没做刷新出现的这个问题。(你不刷新php的变量怎么改变给js呢,你当然不能跟提需求的说以后刷新了再点击,也不能自己加个js让按钮点了就把页面刷一下是吧,肯定会挨批的。。。)。只有即时读取cookie吧,不刷新页面只有用js读取吧。但是乱码很头疼。又搜了一遍,用decodeURIComponent解决了。 我的页面编码统一都是utf-8,如果是gbk,可能要用unescape之类,具体没研究。
iframe缓存问题
页面有多个iframe时,容易窜位,即时你给src的链接加个php生成的随机数也不行。改成用js生成iframe就可以了。
iframe退出相关
aa.xx.com用iframe引入的www.xx.com的一个头部登陆条,有退出链接也是同步退出的(原理就是ajax去请求 然后输出<script src=“www.yy.com/….通信密钥。。”输出时要请求很多东西(这种思想可以借鉴,而不只是为要返回值而返回数据,可以用来做请求。)。就是uchome同步登陆那一套,用的fscokopen(),原理可参考:http://hi.baidu.com/zxsz4085/blog/item/549076ca08924912bf09e659.html) 现在说头部不要那个登陆条了,但是要在登陆后的页面其他地方做个退出链接,晕倒。 就想用js在父页面点子页面的退出,网上搜: 把头部登陆条display为none藏起来 其他地方加个链接 onclick=”document.getElementById(‘iframe_head’).contentDocument.getElementById(‘link_logout’).click();” 火狐说没权限。。。 试试本地,在本地项目下建立了一个页面就放了一个button 让它点击时就提示xxx,让头部iframe改成引用这个页面,结果发现头部iframe隐藏时,通过点击自己的退出链接无法触发点击button,显示iframe时就可以提示xxx 头疼,无赖,又做了个 iframe 把width和height设置得都很小,里面就一个退出链接,事件从头部登陆条的页面拷过来。写个方法供最底层刷新页面。
iframe登陆相关
最近在子站点http://aa.xx.com用iframe引 用http://www.xx.com 的登陆框,因为www那边登陆还没做成服务,但是要涉及其他几个网站的同步登陆,目前是只有走那个登陆框提交表单才能触发同步登陆。 开始以为是个很简单的事情,在www那边的登陆表单用ajax登陆成功后就调用parent.window.location.reload();火狐错误控制台提示没权限哦。然后在本地项目建立了一个文件,iframe的src指向它,可以提示消息。想不明白,都是xx.com 怎么就不行了。 无奈,看了之前别人引用的一个头部登陆条里搞明白了。 比如:aa.xx.com 这边有个文件 1. login.html 这边页面写个js方法用来刷新页面。 function reload_page(){ window.location.reload(); } iframe引用了www.xx.com 那边的一个文件 iframe_login_header.html 2. iframe_login_header.html 页面 有个iframe src为空 , 用ajax请求登陆程序处理成功后,给src指向 aa.xx.com 这边的一个页面reload.html 3. reload.html页面里啥也不用干,就调用顶级页面的方法。你可以在reload_page()里做其他处理,而不只是登陆后刷新页面。 window.top.reload_page();
通过jsonp实现跨越应用示例
转载自:http://www.smallgang.cn/index.php/JavaScript/jsonp.html 什么是JSONP协议? JSONP即JSON with Padding。由于同源策略的限制,XmlHttpRequest只允许请求当前源(域名、协议、端口)的资源。如果要进行跨域请求,我们可以通过使用html的script标记来进行跨域请求,并在响应中返回要执行的script代码,其中可以直接使用JSON传递javascript对象。这种跨域的通讯方式称为JSONP。 很明显,JSONP是一种脚本注入(Script Injection)行为,需要特别注意其安全性。 站点www.87end.cnd的php代码(jsonp.php) //ajax接收的参数$action = $_GET['act'];$name = $_GET['name']; call_user_func($action, $name); function sayHello($name) { $callback = trim($_GET['jsoncallback']); $arr = array(‘msg’=>’hello ‘ . $name); echo $callback.”(“.json_encode($arr).”);”;} 站点www.smallgang.cn的 JS脚本(jsonp.html), 用jquery的ajax,有两种实现方式 方法一: jQuery.getJSON(url,[data],[callback])$.getJSON(“http://www.87end.cn/jsonp.php?act=sayHello&name=xiaogang&jsoncallback=?”, function(data){ alert(data.msg); } ); 方法二:jQuery.ajax(options)$.ajax({ … 继续阅读