中山php|最优网络中山做网站 中山php建站

最优良人

2011/08/15 at 01:14

js离开当前页面时触发的函数

js离开当前页面时触发的函数:
window.onbeforeunload=fun() ;
function fun(return 'msg';) ;

这样子在浏览器在捕捉到页面即将离开的时候就会弹出提示框,显示msg的内容,询问你确定或者取消
目前三大主流浏览器中firefox和IE都支持onbeforeunload事件

另外还有一个相似的函数Onunload:

Onunload,onbeforeunload都是在刷新或关闭时调用,可以在<script>脚本中通过window.onunload来指定或者在<body>里指定。
区别在于onbeforeunload在onunload之前执行,它还可以阻止onunload的执行。

  Onbeforeunload也是在页面刷新或关闭时调用,Onbeforeunload是正要去服务器读取新的页面时调用,此时还没开始读取;而onunload则已经从服务器上读到了需要加载的新的页面,在即将替换掉当前页面时调用。Onunload是无法阻止页面的更新和关闭的。而 Onbeforeunload 可以做到。

1、onbeforeunload事件:

  说明:目前三大主流浏览器中firefox和IE都支持onbeforeunload事件,opera尚未支持。

  用法:

   ·object.onbeforeunload = handler

   ·<element onbeforeunload = "handler" … ></element>

  描述:

   事件触发的时候弹出一个有确定和取消的对话框,确定则离开页面,取消则继续待在本页。handler可以设一个返回值作为该对话框的显示文本。

  触发于:

   ·关闭浏览器窗口

   ·通过地址栏或收藏夹前往其他页面的时候

   ·点击返回,前进,刷新,主页其中一个的时候

   ·点击 一个前往其他页面的url连接的时候

   ·调用以下任意一个事件的时候:click,document write,document open,document close,window close ,window navigate ,window NavigateAndFind,location replace,location reload,form submit.

   ·当用window open打开一个页面,并把本页的window的名字传给要打开的页面的时候。

   ·重新赋予location.href的值的时候。

   ·通过input type="submit"按钮提交一个具有指定action的表单的时候。

  可以用在以下元素:

   ·BODY, FRAMESET, window

  平台支持:

   IE4+/Win, Mozilla 1.7a+, Netscape 7.2+, Firefox0.9+

  示例:

   <html xmlns="http://www.w3.org/1999/xhtml">

   <head>

   <meta http-equiv="Content-Type" content="text/html; charset=gb2312″ />

   <title>onbeforeunload测试</title>

   <script>

   function checkLeave(){

    event.returnValue="确定离开当前页面吗?";

   }

   </script>

   </head>

   <body onbeforeunload="checkLeave()">

   </body>

   </html>

2、onunload事件

  用法:

   ·object.onbeforeunload = handler

   ·<element onbeforeunload = "handler"></element>

  描述:

   当用户关闭一个页面时触发 onunload 事件。

  触发于:

   ·关闭浏览器窗口

   ·通过地址栏或收藏夹前往其他页面的时候

   ·点击返回,前进,刷新,主页其中一个的时候

   ·点击 一个前往其他页面的url连接的时候

   ·调用以下任意一个事件的时候:click,document write,document open,document close,window close ,window navigate ,window NavigateAndFind,location replace,location reload,form submit.

   ·当用window open打开一个页面,并把本页的window的名字传给要打开的页面的时候。

   ·重新赋予location.href的值的时候。

   ·通过input type="submit"按钮提交一个具有指定action的表单的时候。

  示例:

   <html xmlns=http://www.w3.org/1999/xhtml>

   <head>

   <meta http-equiv="Content-Type" content="text/html; charset=gb2312″ />

   <title>onunload测试</title>

   <script>

   function checkLeave(){

    alert("欢迎下次再来!");

   }

   </script>

   </head>

   <body onunload="checkLeave()">

   </body>

   </html>

comments Comments (51)    -
2011/08/15 at 01:09

php反斜线引用字符串

addslashes:使用反斜线引用字符串 ,返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线,这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。

stripslashes 相反的操作,或者如果系统自动开启了魔法引号(默认是开启的),如果想得到原来没被转义过的字符串,可以使用此函数

比如在正则的逆向引用中:
$find[] = "/<a(.*)href=(\"|')?(\/.*)(\"|'|\s)/Uei";
$replace[] ="stripslashes(str_replace('$','$@&#','$0'));";
去掉php自动加上的反斜杠

标签:,
comments Comments (19)    -
2011/08/15 at 01:05

循环,迭代,递归的理解

循环(loop),指的是在满足条件的情况下,重复执行同一段代码。比如,while语句。

迭代(iterate),指的是按照某种顺序逐个访问列表中的每一项。比如,for语句。

遍历(traversal),指的是按照一定的规则访问树形结构中的每个节点,而且每个节点都只访问一次。

递归(recursion),指的是一个函数不断调用自身的行为。比如,以编程方式输出著名的斐波纳契数列。

comments Comments (3)    -
2011/08/15 at 01:02

异步加载可视化编辑器 Xheditor

如果像上一篇文章使用基于Jquery的可视化编辑器 Xheditor 那样设置的话,访问页面时会加载70多k的jquery文件和50多k的xheditor文件,为了追求页面默认加载的性能提升,其实这些文件完全可以在编辑的时候异步加载的,下面是操作步骤:

1,需要用到一个异步加载js文件并执行的函数

function getJsFile(url, callBack){

var XH = window.XMLHttpRequest ? new XMLHttpRequest : new ActiveXObject('Msxml2.XMLHTTP');

XH.open('get',url,true);

XH.onreadystatechange = function(){

if(XH.readyState == 4 && XH.status == 200){ if(window.execScript) window.execScript(XH.responseText);

else eval.call(window, XH.responseText);

eval(callBack);

}

}

XH.send('');

}

第一个参数url为js路径,第二个回调函数是加载完js之后的操作

2,由于我采用js初始化编辑器的方式,并且我把初始化的内容统一放到一个js文件以便以后统一更改样式,所以我异步加载的时候会加载三个文件。使用以下代码:

function callback(){ };

var is_load;

is_load = false;

function loads(){

if(!is_load){

getJsFile('/js/jquery-1.4.2.min.js','callback');

getJsFile('/js/editor/xheditor-en.min.js','callback');

getJsFile('js/editor/editor.js','callback');

is_load = true;

}

}; 回调函数留空,变量is_open判断是否已经加载过,防止重复加载

3,在textera框外面加一层span ,onclick="loads()"

大功告成了,只要一点击textarea就会调用js并且执行

不过有一点需要注意的是,由于xheditor默认是根据 页面这一条语句去判断插件所在的位置,由于采用异步加载所以网页头部没放这一行,解决的方法是在插件目录在建一个js文件,叫xheditor-autoload.js,刚好把上面那个 getJsFile()函数放进去,然后在放到页面头部位置: ,大小不到1k,算可以接受。

标签:, ,
comments Comments (6)    -
2011/08/15 at 01:00

使用基于Jquery的可视化编辑器 Xheditor

使用方法

1. 下载xhEditor最新版本。
下载地址:http://code.google.com/p/xheditor/downloads/list

2. 解压压缩文件,将其中的xheditor.js以及xheditor_emot、xheditor_plugins和xheditor_skin三个文件夹上传到网站相应目录

3. 在相应html文件的</head>之前添加
<script type="text/javascript" src="http://static.xxx.com/js/jquery.js"></script>
<script type="text/javascript" src="http://static.xxx.com/js/xheditor.js"></script>

4.
方法1:在textarea上添加属性: class="xheditor {skin:'default'}",前面主参数也可以是xheditor-mini和xheditor-simple,分别加载迷你和简单工具栏,后面详细参数可以省略
方法2:在您的页面初始JS代码里加上: $('#elm1').xheditor();
$('#elm1').xheditor();
例如:
$({
$('#elm1').xheditor();
});
相应的删除编辑器的代码为
$('#elm1').xheditor(false);
重要说明:2种初始化方法只能选择其中一种,不能混合使用,优先级分别是:方法1>方法2,例如用了方法1,方法2就无法使用了
更多帮助信息,请查看在线帮助:http://code.google.com/p/xheditor/wiki/Help
或者参考demos文件夹中的演示页面
建议使用wizard.html初始化代码生成向导来生成适合你的代码。

标签:,
comments Comments (19)    -
2011/08/15 at 00:58

PHP使用PDO进行跨数据库操作

PDO(PHP Data Object) 是PHP 5新出来的东西,在PHP 6都要出来的时候,PHP 6只默认使用PDO来处理数据库,将把所有的数据库扩展移到了PECL。

为了掌握 PDO,需要了解 5 个关键概念。这 5 个概念是:  

 连接和连接管理 事务和自动提交 预处理语句和存储过程 错误和错误处理 特定于驱动程序的功能性,包括 滚动游标 和 大型对象

以下是一些简单的例子

/* * PDO::query() 主要是用于有记录结果返回的操作,特别是SELECT操作

PDO::exec() 主要是针对没有结果集合返回的操作,如INSERT、UPDATE等操作 PDO::lastInsertId() 返回上次插入操作,主键列类型是自增的最后的自增ID PDOStatement::fetch() 是用来获取一条记录 PDOStatement::fetchAll() 是获取所有记录集到一个中

*/

//使用PDO连接操作数据库

$db = new PDO(\"mysql:host=localhost;dbname=test\",\'root\',\'112233\');

$db->query(\"SET NAMES \'gbk\'\"); $rs = $db->query(\'select * from user\');

/*while ($row = $rs->fetch()) {

print_r($row);

}*/

//把结果全部放到二维数组

//print_r($rs->fetchAll());

$row = ($rs->fetchAll());

echo $row[0][name];

标签:,
comments Comments (25)    -
2011/08/14 at 02:55

异步加载 Xheditor 的时候遇到的浏览器兼容问题

由于各个浏览器对js代码的异步执行函数的支持不一样

window.execScript() 只支持IE浏览器

eval() 虽然支持各个浏览器,但是却不能在全局执行

解决的方法是利用javascript里面有一个改变上下文环境的关键字with .

把GetJsFile方法改成如下:

function getJsFile(url, callBack){
var XH = window.XMLHttpRequest ? new XMLHttpRequest : new ActiveXObject('Msxml2.XMLHTTP');
XH.open('get',url,true);
XH.onreadystatechange = function(){
if(XH.readyState == 4 && XH.status == 200){
with ( window )eval(XH.responseText);
//if(window.execScript) window.execScript(XH.responseText);
//else eval.call(window, XH.responseText);
with ( window )eval(callBack);
}
}
XH.send('');
}

标签:,
comments Comments (20)    -
2011/08/14 at 02:54

Web Developer--FireFox的强大开发插件

为了禁用浏览器缓存以方便调试Ajax,可以使用FireFox的强大开发插件Web Developer:其拥有强大的CSS调试和Form调试能力,对页面的分析非常全面,可以禁止页面的任一内联、文档、和外部CSS,可以直接编辑当前CSS,可以直接加载本地的CSS,可以用鼠标点击查看页面内任一元素的CSS,可以查看盒子模型结果,这还只是其功能一,其他的功能太多了,比如表单的POST和GET功能相互转换,检查XHTML和CSS语法,禁止一切可以禁止的,包括Cache、Cookie、图片、Java、Js、Referrer等等……如果你需要经常调试页面的话,这个插件能极大满足你的需求。

  Web Developer作为Firefox的插件存在,主要功能表现在几个重要的方面:

  对页面中的文本、图像、媒体文件进行控制,对网页所应用的CSS文件的id与class辅助查看,表格辅助查看,可以实现修改CSS文件实时显示出得到的页面效果等等。

  Web Developer插件能够帮助我们对CSS网站进行分析,我们使用Firefox对网页进行浏览,运用Web Developer插件不仅仅只是能看到对方的源代码,还能方便的分析出页面的布局结构,CSS书写方式,鼠标所在位置的id或class是什么等等,使我们能迅速的理解、学习别人的成功经验,进而更加方便快捷的掌握CSS布局技术。

标签:,
comments Comments (17)    -
2011/08/14 at 02:52

JS判断一个变量是否是数组以及循环数组

JS判断一个变量是否是数组的方法

  1. function isArray(o) {
  2. return Object.prototype.toString.call(o) === '[object Array]';
  3. }

//for in循环数组

  1. var key;
  2. for (key in array)
  3. {
  4. }

//for循环数组

  1. var key;
  2. for (key =0;key< url.length;key++)
  3. {
  4. }
标签:,
comments Comments (7)    -
2011/08/14 at 02:48

修改file表单按钮样式,把文字:浏览..修改成自己喜欢的样式或其他文字

由于file类型的表单会自动生成一个文字为浏览..的按钮,并且这个按钮的文字不能改变,如果我想改变这个file input框的表现形式或者希望改变这个按钮的文字应该怎么办呢?

我首先想到的,也是最简单的方式就是把这个file input框隐藏,然后建多一个按钮,点击按钮的时候触动file 的click事件,这个方式再ie下可以,在火狐下就没效果。

另外几种种比较常用的方式就可以解决浏览器兼容的问题,下面这种算是比较完美的解决方式,也是最简单的了。

就是先把这个file框透明,然后把它放在a标签里面,定义a标签的背景样式,这样看到的是a,点击的是file,下面是代码:
<HTML>
<HEAD>
<TITLE>upload</TITLE>
<style>

.a {

cursor:hand;
text-decoration:none;
background-image: url('http://cn.madeinasia.com/templets/default/images/logo.gif');
height:20px;
width:20px;
padding:0px;
}

.file {
cursor:pointer;
font-size:20px;
left:0px;
opacity:0;
filter:alpha(opacity=0)
}

</style>
</HEAD>
<BODY>
<FORM METHOD=POST ACTION="" enctype="multipart/form-data">
<A class='a' href=#><INPUT class='file' type=file size=1 name="filedata" onchange="this.form.submit()"></A>
<INPUT TYPE="submit" value="提交">
</FORM>

</BODY>
</HTML>

标签:,
comments Comments (277)    -