Tag Archives: JavaScript

解决Ajax跨域的取巧办法

在IE里面,有一个比较取巧的办法,就是把当前域和目标域都放到受信任站点就可以了,下面是一些更加全面和彻底的解决方法: 1、Server Proxy 2、Dynamic Script标签 3、Apahce的mod_rewrite模块 4、借助IFrame模拟 5、借助于Flash JavaEye上的一个相关讨论:求XmlHttp 跨域的解决方案 另外一个BLOG是使用Flash达到跨域访问数据的目的:Ajax跨域访问的替代方案

使用Javascript操作剪贴板和Excel

操作剪切板使用了window.clipboardData对象 操作Excel使用了ActiveX对象,创建时候有一个警告信息,点击“是”就可以了 <html> <head> <title>test page</title> <script type="text/javascript"> <!– function exportToExcel() { var dataArray = new Array(); var table1 = document.getElementById(‘table1′); var rows = table1.rows for (var i = 0; i < rows.length; i++) { var cells = rows[i].cells; for (var j = 0; j < cells.length; j++) { dataArray.push(cells[j].innerText); dataArray.push(‘t’); } dataArray.pop(); dataArray.push(‘n’); } [...]

HTTP Cookies的一点知识

Cookies的作用是用来保存浏览器客户端的状态,会以文件的形式存放在浏览器的临时文件目录中;在HTTP的请求和应答过程中Cookie都放在Header段中,有两个格式的Header设置 1、服务器相应客户端的请求:使用Set-Cookie Header 2、客户端向服务器发送请求:使用Cookie Header 一般情况下Cookie传递如下:服务器端在响应中利用Set-Cookie header来创建一个Cookie,然后,浏览器在它的请求中通过Cookie header包含这个已经创建的Cookie,并且反它返回至服务器,从而完成浏览器的论证。 Cookie的格式: 基本格式:<name>=<value>[; <name>=<value>]… Set-Cookie Header可以有一些对Cookie的附属说明: [; expires=<date>][; domain=<domain_name>] [; path=<some_path>][; secure][; httponly] 在客户端可以使用Javascript直接读写Cookie,使用的对象是document.cookie 详细的信息可以参考下面的链接: HTTP Cookies (Windows) HOWTO:防止在 Internet Explorer 中进行缓存 php中Cookie介绍及其使用

使用Javascript动态创建表格,不同的方法,巨大的运行时间差异!

本来是想测试一下使用Javascript生成一个比较大的表格,大概需要多长时间,一直认为这会是一个比较固定的时间。期间用了几种不同的方法,发现效率相差太大了。下面是测试的具体说明: 目标:生成一个2000*5的表格,每个单元格的内容是行号+逗号+列号 方法一:使用createElement生成表格,使用insertRow和insertCell方法生成行列,单元格的内容使用innerHTML属性进行填充。 方法二:使用createElement生成表格,使用CreateElement方法生成行列,单元格的内容使用了createTextNode方法填充。 方法三:拼接表格innerHTML属性的字符串,使用字符串 += 操作符链接字符串 方法四:拼接表格innerHTML属性的字符串,各个字符串追加数组里面,最后调用数组的join方法生成目标字符串。 运行时间比较: 方法 运行时间(ms) 方法一 93037 方法二 3341 方法三 2795 方法四 500 具体的程序如下: <html> <head> <title>test page</title> <script type=’text/javascript’> <!– function createTable() { var t = document.createElement(‘table’); for (var i = 0; i < 2000; i++) { var r = t.insertRow(0); for (var j = 0; j < [...]

使用Javascript进行页面内部搜索的方法

主要使用了IE中的TextRange对象,http://msdn2.microsoft.com/en-us/library/ms535872.aspx,简单的搜索功能代码如下: function search() { var txt; txt = window.document.body.createTextRange(); if (txt.findText("hello")) { txt.select(); txt.scrollIntoView(); } }

[译]Javscript 正则表达式指南

原文地址:http://www.javascriptkit.com/javatutors/redev.shtml   程序员的正则表达式指南   什么是正则表达式?正则表达式是一种能够对文本内容进行匹配处理的模式,你在DOS中查找文件使用的统配符?和*就属于正则表达式,但只是它的一小部分.为什么这样说呢?比如说你想查找符合下面条件的所有文件:以"fn"打头,后面是1到4个任意字符,以"ht.txt"结尾,这时候DOS的通配符就无能为力了.而正则表达式不仅能处理这些情况,而且能处理更加复杂的模式.   正则表达式的语法在Javascript中定义正则表达式有两种方式,一种是使用正则表达式的对象构造函数,另外一种方法是使用Literal.使用对象构造函数的优点是可以在程序运行过程中改变正则表达式,而使用Literal时性能更好,因为它在载入脚本的时候就进行了编译.对已确定的正则表达式最好使用Literal进行定义,而动态构建正则表达式(如用户输入)时应该使用构造函数.大多数情况下,你可以使用上面的任意一种方法定义正则表达式,然后以完全相同的方式使用.   定义下面是在Javascript中定义正则表达式的方法.在Javascript使用Literal定义正则表达式时,定界符号是向前的斜线(/),在别的语言(如PHP或VBScript)中可能使用其它字符. 使用Literal:/pattern/flags; 例如: var re=/mac/i;使用对象构造函数:new RegExp("pattern","flags"); 例如: var re = new RegExp(window.prompt("Please input a regex.", "yes|yeah","g);   标志在正则表达式中有三个标志,多行输入标志(m)仅在Javascript 1.5及以上版本中支持,其它两个(g,i)可以在绝大多数支持RegExp对象(JavaScript 1.2以上版本)的浏览器中使用.这些标志可以按照任意的顺序和组合使用,它们是正则表达式不可分割的一部分.   完整查找,标志:g使用完整查找标志时,对字符串从头到尾进行正则表达式匹配,并创建一个数组保存所有匹配的结果. 忽略大小写,标志:i使用忽略大小写标志时,对字符串的匹配处理不考虑字母的大小写.国际化开发者应该注意,这个选项对于像ü这样的扩展字符无效. 多行输入,标志:m使用多行输入标志时,输入开始标志(^)和输入结束标志($)也匹配每行的开始和结束,这个标志仅在Javascript 1.5及以上版本中支持.   正则表达式的模式根据你要完成的任务,在正则表达式中使用的模式可以很简单,也可以很复杂.像匹配"hello world"这样简单的字符串,你只需要直接将它写在正则表达式中;但如果要匹配一个Email地址或HTML标记,你需要使用很复杂的模式,它将会使用到下表中大多数的模式语法.   转义字符: 使用转义字符将正则表达式中的特殊字符恢复其本义,也可以使普通字符具有特殊的含义.例如: /(s)/将匹配’(s)’字符串,而/(s)/匹配所有的非空字符并捕获匹配结果.   量词: {n} {n,} {n,m} * + ?量词确定它前面子模式的重复次数,子模式可以是一个字符,一个转义词,一个用小括号括起来的模式或一个字符集合.{n} 匹配n次{n,} 匹配n次或n次以上{n,m} 匹配n到m次* 是{0,}的简单写法,匹配0次或多次+ 是{1,}的简单写法,匹配一次或多次? 是{0,1}的简单写法,匹配0次或一次例如: 模式/o{1,3}将在字符串"tooth"中匹配’00′,在"nose"中匹配’o’ [...]

How to use javascript to pass value from a dialog page

1. Use window.showModalDialog method to popup a dialgbox var rtn = window.showModalDialog(“ModalWindow.htm”,obj,”dialogWidth:300px;dialogHeight=200px;status:no”); 2. in the dialogbox page a. window.dialogArguments represent input param var argu = window.dialogArguments b. set window.returnValue when close the window var rtn = new Object(); rtn.name = document.form1.edit1.value; rtn.age = document.form1.edit2.value; window.returnValue = rtn; window.close(); for detail information, please see fllowing files: [...]