window.parent与window.opener的区别与使用

1、window.parent 是iframe页面调用父页面对象

举例: a.html

<html>
<head><title>A</title></head>
<body>
<form name=”form1″ id=”form1″>
<input type=”text” name=”username” id=”username”/>
</form>
<iframe src=”b.html” width=100%></iframe>
</body>
</html>

如果我们需要在b.html中要对a.html中的username文本框赋值(就如很多上传功能,上传功能页在ifrmae中,上传成功后把上传后的路径放入父页面的文本框中),我们应该在b.html中写:

<script type=”text/javascript”>
var _parentWin = window.parent;
_parentWin.form1.username.value = “xxxx”;
</script>

继续阅读

PHP 自定义函数实现 JavaScript escape 编码

中文字符在JSON中是无法处理的,使用的后果一定是乱码伺候,通常我们用JavaScript的escape函数对中文进行编码转换,比如cookie中的用户名。

有些情况下,为了保持程序的一致性,我们需要在PHP中对中文字符进行escape编码,而PHP本身是没有escape函数的,于是便诞生了一些PHP中的自定义函数实现escape编码。

function phpescape($str){
$sublen=strlen($str);
$reString="";
for ($i=0;$i<$sublen;$i++){
if(ord($str[$i])>=127){
$tmpString=bin2hex(iconv("GBK","ucs-2",substr($str,$i,2)));    //此处GBK为目标代码的编码格式,请实际情况修改
if (!eregi("WIN",PHP_OS)){
$tmpString=substr($tmpString,2,2).substr($tmpString,0,2);
}
$reString.="%u".$tmpString;
$i++;
} else {
$reString.="%".dechex(ord($str[$i]));
}
}
return $reString;
}

继续阅读

使用 getFullYear 获取当前年份

今天 @Washun 跟我找一段可以显示当前日期的js代码,于是从网上搜来一段简单的代码,在Chrome等浏览器下显示的年份却是110,这个问题之前也有在其他地方遇到过,一直没有引起重视。

于是继续Google,getYear 和 getFullYear 均是 JavaScript 中 Date 对象的方法。

可是有些浏览器,如 Firefox、Chrome,getYear 始终返回 Date 对象中的年份是与 1900 年之间的差距,也就是说如果 Date 对象表示的是今年(2010年),那么返回的就是 110。

即使在 IE 中,如果 Date 对象中的年份是在1900-1999这段时间内,返回的仍然是 Date 对象中的年份与1900年之间的差距。

而 getFullYear 就不存在这个问题, getYear() 方法确实已经过时,我们还是改用 getFullYear 吧。

这里是一个返回当前日期时间的JavaScript函数,

<script type="text/javascript">
function GetDateT(){
var d,s;
d = new Date();
s = d.getFullYear() + "-";             //取年份
s = s + (d.getMonth() + 1) + "-";//取月份
s += d.getDate() + " ";         //取日期,用\n表示换行
s += d.getHours() + ":";       //取小时
s += d.getMinutes() + ":";    //取分
s += d.getSeconds();         //取秒
return(s);
}
myDate=GetDateT()
document.write(myDate)
</script>

返回的结果为:2010-12-2 14:53:4

JS判断浏览器语言 自动跳转多语言页面

一直在不停的换工作,最近总算稳定下来,目前的本职工作是外贸。在这个网络普及的时代,外贸的主要途径一定是网络。也许你的企业网站既有中文版本,同时也有英文版本(如果你的公司有外贸业务)。

下面贡献一段代码,可以让你的网站自动判断客户端浏览器或者操作系统的语言,实现在不同语言间跳来跳去,比如中英文网站间的自动跳转。

var type=navigator.appName
if (type=="Netscape"){
var lang = navigator.language
}
else{
var lang = navigator.userLanguage
}
//取得浏览器语言的前两个字母
var lang = lang.substr(0,2)
// 英语
if (lang == "en"){
window.location.href="http://www.xxx.com/"
}
// 中文 - 不分繁体和简体
else if (lang == "zh"){
//  window.location.href="http://www.xxx.cn/"
//  注释掉了上面跳转,不然会陷入无限循环
}
// 除上面所列的语言
else{
window.location.href="http://www.xxx.com.cn/"
}

以上代码通过Firefox、Chrome、Opera测试有效;为了测试IE下的效果,特意在VMware Player里安装了Windows XP英文版,结果一样有效。

亲手测试一下效果:在Chrome的高级设置里添加其他语言,设置语言为en-us或者任何en开头的,测试效果。

PS:多余一句,在html中使用JavaScript代码需要<script type="text/javascript">….</script>。

返回页面顶部的JS特效

一个很贴心的小功能,返回页面顶部,很多网站都有。一个文字或者图片链接,点击这个链接后就会自动跳到该页面的顶部。

常用的方法是在body标签添加一个标记。

<body>
<a name="top">

然后在需要的地方添加链接即可。

<a href="#top">返回</a>

还有更简单的,我一般都是这么干的,一个空标记就可以返回顶部,不知道为什么,反正这样行的通

<a href="#">返回顶部</a>

有朋友留言说需要这段代码,找出来贴一下 继续阅读

一个倒计时JS脚本

<script type="text/javascript">
var timedate= new Date("August 8,2008");
var times= "2008北京奥运会";
var now = new Date();
var date = timedate.getTime() - now.getTime();
var time = Math.floor(date / (1000 * 60 * 60 * 24)+1);
if (time >= 0) document.write( "距离"+times+"还有"+time +"天")
else if (time <=3)
document.write( "<font color=red>距离"+times+"还有"+time +"天</font>")
</script>

写了一个Z-Blog的倒计时插件,用的就是这个js,http://bbs.zblogcn.com/thread-23137-1-1.html

普遍见到的有个错误,已经修正了,(1000 * 60 * 60 * 24)+1

JS随日期和时间变换文本

1、随日期变换文本

脚本说明:原理很简单,先获得本机系统当前的年月日,然后根据msg变量判断该输出哪一条。

把如下代码加入<body>区域中–>

<script language="JavaScript"> 
<!-- Hide
  var now = new Date();
  var month = now.getMonth() + 1;
  var date = now.getDate();
  var year = now.getYear();
  
        msgs = new Array
        msgs[1] = "每月1号的信息"
        msgs[2] = "每月2号的信息"
        msgs[3] = "每月3号的信息"
        msgs[4] = "每月4号的信息"
        msgs[5] = "每月5号的信息"
        msgs[6] = "每月6号的信息"
        msgs[7] = "每月7号的信息"
        msgs[8] = "每月8号的信息"
        msgs[9] = "每月9号的信息"
        msgs[10] = "每月10号的信息"
        msgs[11] = "每月11号的信息"
        msgs[12] = "每月12号的信息"
        msgs[13] = "每月13号的信息"
        msgs[14] = "每月14号的信息"
        msgs[15] = "每月15号的信息"
        msgs[16] = "每月16号的信息"
        msgs[17] = "每月17号的信息"
        msgs[18] = "每月18号的信息"
        msgs[19] = "每月19号的信息"
        msgs[20] = "每月20号的信息"
        msgs[21] = "每月21号的信息"
        msgs[22] = "每月22号的信息"
        msgs[23] = "每月23号的信息"
        msgs[24] = "每月24号的信息"
        msgs[25] = "每月25号的信息"
        msgs[26] = "每月26号的信息"
        msgs[27] = "每月27号的信息"
        msgs[28] = "每月28号的信息"
        msgs[29] = "每月29号的信息"
        msgs[30] = "每月30号的信息"
        msgs[31] = "每月31号的信息"
        var msg = msgs[date]
//-->
</script>
<script>
<!--
document.write(msg);
//-->
</script>

继续阅读

JS随机显示一条文本信息代码

第1步:将以下代码加到〈head〉与〈/head〉之间

<script language="JavaScript">
<!-- Hide
var a = Math.random() + ""
var rand1 = a.charAt(5)
quotes = new Array
quotes[1] = '文本信息一'
quotes[2] = '文本信息二'
quotes[3] = '文本信息三'
quotes[4] = '文本信息四'
quotes[5] = '文本信息五'
quotes[6] = '文本信息六'
quotes[7] = '文本信息七'
quotes[8] = '文本信息八'
quotes[9] = '文本信息九'
quotes[0] = '文本信息十'
var quote = quotes[rand1]
//-->
</script>

第2步:将以下代码加到你需要显示的位置,〈body〉与〈/body〉之间

<script language="JavaScript">
<!-- Hide
document.write( quote )
// -->
</script>

打开链接,在新窗口还是同一窗口

刚才在PCHome下载频道找东西,发现首页底部有个“不打开新窗口”,选中后打开链接就不是在新窗口打开了……

1

觉得挺有意思的,就研究了一下,现在分析源代码,教你把它用在自己的网页上!

STEP 1

首先,在</head>上发现这样一句代码,加载了一个javascript文件

<script type=”text/javascript” src=”http://images.pchome.net/global/js/external.js”></script>

这里就不提供这个文件的下载了,如果有需要直接到上面的地址下载(右键 – 目标另存为);

STEP 2

接着往下看,在</head>下面发现

<base target=”_blank” />

这个很简单,就是让页面中所有链接都在新窗口打开; 继续阅读