Profil de Stephen喜欢天空的蓝色PhotosBlogListesPlus ![]() | Aide |
|
|
28 octobre 多页面共享子窗口这是来自论坛上的一个问题,问题要求多个不同的页面,在打开子页面时,要共用同一个窗口,并且子窗口不能刷新。这跟google音乐里面的添加音乐,然后播放的效果类似。因为在播放音乐的时候,如果子页面刷新了,那么音乐必须从头来播放,自然效果不尽人意。类似的情况也会出现在视频的网站上。
下面,我们使用简单的Javascript代码来实现这一功能。本代码在目前所有主流浏览器里测试通过。
下面,先创建一个测试主页面,Test1.htm
XML/XHTML 代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script type="text/javascript"> function winOpen() { window.open("winA.htm?music=From_Test1_" + (new Date()).toLocaleString(), "mxh", "width=600,height=300") } </script> </head> <body> <input type="button" onclick="winOpen()" value="打开子窗口" /> </body> </html> 接下来,创建WinA.htm
XML/XHTML 代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Window A</title> </head> <body> <h1>这里是Window A</h1> <script type="text/javascript"> if (window.location.href == window.top.location.href) { self.top.location.href = "winB.htm" + window.location.search } else { window.parent.frames["mxh2"].setMusic(window.location.search.substr(1)) } </script> </body> </html> 接下来是WinB.htm
XML/XHTML 代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Window B</title> </head> <body> <iframe name="mxh2" src="winC.htm" style="width:600px;height:400px;" frameborder="0"></iframe> <iframe name="mxh" src="winD.htm" style='display:none'></iframe> <script type="text/javascript"> alert("页面刷新检测器") </script> </body> </html> WinC.htm
XML/XHTML 代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Window C</title> </head> <body> <div id="showContent">初始化的内容</div> <script type="text/javascript"> function setMusic(str) { document.getElementById("showContent").innerHTML += "<br/>" + str } </script> </body> </html> WinD.htm
XML/XHTML 代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Window D</title> </head> <body> <script type="text/javascript"> window.name = "mxh"; window.top.name = ""; window.top.focus(); </script> </body> </html> 然后可以创建多个测试用的页面Test2.htm XML/XHTML 代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script type="text/javascript"> function winOpen() { window.open("winA.htm?music=From_Test2_" + (new Date()).toLocaleString(), "mxh", "width=600,height=300") } </script> </head> <body> <input type="button" onclick="winOpen()" value="打开子窗口" /> </body> </html> 在不同的窗口里,打开测试页面,则,都会将内容显示在Window B所在的主体窗口内。并且页面是不刷新的。其原理就是将新开的页面在隐藏的窗口里打开,然后取出来传递的参数,使用javascript来进行数据的传递。其中窗口WinD.htm中的脚本不能少,而且是很关键的地方。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/net_lover/archive/2009/10/27/4735224.aspx 10 septembre Win32应用程序中进程间通信方法分析与比较Win32应用程序中进程间通信方法分析与比较 来源:Intetnet
1 进程与进程通信
进程是装入内存并准备执行的程序,每个进程都有私有的虚拟地址空间,由代码、数据以及它可利用的系统资源(如文件、管道等)组成。多进程/多线程是Windows操作系统的一个基本特征。Microsoft
Win32应用编程接口(Application Programming Interface,
API)提供了大量支持应用程序间数据共享和交换的机制,这些机制行使的活动称为进程间通信(InterProcess Communication,
IPC),进程通信就是指不同进程间进行数据共享和数据交换。
2 进程通信方法 2.1 文件映射
3 结束语 Win32
API为应用程序实现进程间通信提供了如此多种选择方案,那么开发者如何进行选择呢?通常在决定使用哪种IPC方法之前应考虑下一些问题,如应用程序是在网络环境下还是在单机环境下工作等。 17 décembre 重载insertAdjacentElement (兼容ie、firefox)if(typeof HTMLElement!="undefined" && !HTMLElement.prototype.insertAdjacentElement) HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr)
吃水不忘挖井人! 16 septembre 让颈椎受到保护专家简介: 杨宏建,北京市健美协会副主席,十运会举重比赛裁判,美国纽约州立大学科特兰学院体育系硕士,北京国际体育交流中心职员。1996年,代表中国参加了亚特兰大奥运会火炬接力。 上班族最苦恼的莫过于日益紧张的颈椎了。尤其到了下午,看看周围,你经常会发现自己的同事在按摩颈椎放松。事实上,颈椎既是人体非常脆弱的部位,而它周围的肌肉又非常难练。北京市健美协会副主席、美国纽约州立大学科特兰学院体育系硕士杨宏建先生说,即使对于健美运动员来说,颈部的肌肉也是不容易练的部位。对于上班族来说,颈部肌肉的健康直接影响了他们颈椎的健康状况。他为本报读者提供了一套训练颈部肌肉柔韧性的方案。 一、“米字形”弯曲。脖子绕环法不可取,脖子向四周做环绕动作,容易造成颈椎扭伤,因为这个动作对脖子来说,属于非常规动作。他建议做“米字形”颈部弯曲动作,顺序如下:先做“十字形”弯曲,即头部依次向前弯―复位―向左弯―复位―向后弯―复位―向右弯―复位;然后依次做“左前弯―复位―左后弯―复位―右后弯―复位―右前弯―复位”。 二、低头抻拉颈部肌肉,持续30秒。如果已经有颈椎病了,往后仰头会不舒服,不要做令脖子不舒服的动作。 杨宏建教练说,除了提高颈部肌肉的柔韧性外,颈部肌肉的力量也要加强。这个部位的力量练习有一些特殊的方法,但对于普通人来说,通常是通过练习颈部下方的斜方肌,来达到加固颈部的功能。如果一个人斜方肌弱,就容易含胸,颈椎就处于前屈位,容易劳损。为此,他推荐了3个练习斜方肌的方案: 一、直立划船。手握哑铃,两脚开立,身体站直,挺胸抬头,肩后展同时提肘,将哑铃提至胸前,缓缓发下,如此反复,第一组做20次,第二组做14―15次即可。注意保持身体正直,不要用腰发力,而是用颈后下方、两块肩胛骨之间的斜方肌发力。提起时(发力时)呼气,放下时吸气。 二、耸肩。把肩使劲往上耸,争取去碰耳朵,然后放下,做2组,每组十几次。 三、肩绕环。上身正直,两臂下垂,让双肩后展,做以肩关节为中心的绕环动作。2组,每组十几次。 四、单杠悬垂。双手握住单杠,将身体悬吊在杠下,由于重力作用,脊椎等关节得到拉伸。 10 août 常见排序算法 之 Javascript版用JavaScript实现的常见排序算法:冒泡排序,选择排序,插入排序,谢尔排序,快速排序(递归),快速排序(堆栈),归并排序,堆排序。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> 常见排序算法 之 JavaScript版 </title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta name="keywords" content="排序,算法,JavaScript排序" /> <meta name="description" content="用JavaScript实现的常见排序算法:冒泡排序,选择排序,插入排序,谢尔排序,快速排序(递归),快速排序(堆栈),归并排序,堆排序" /> <script type="text/javascript"> Array.prototype.swap = function(i, j) { var temp = this[i]; this[i] = this[j]; this[j] = temp; } Array.prototype.bubbleSort = function()
{ for (var i = this.length - 1; i > 0; --i) { for (var j = 0; j < i; ++j) { if (this[j] > this[j + 1]) this.swap(j, j + 1); } } } Array.prototype.selectionSort = function()
{ for (var i = 0; i < this.length; ++i) { var index = i; for (var j = i + 1; j < this.length; ++j) { if (this[j] < this[index]) index = j; } this.swap(i, index); } } Array.prototype.insertionSort = function()
{ for (var i = 1; i < this.length; ++i) { var j = i, value = this[i]; while (j > 0 && this[j - 1] > value) { this[j] = this[j - 1]; --j; } this[j] = value; } } Array.prototype.shellSort = function()
{ for (var step = this.length >> 1; step > 0; step >>= 1) { for (var i = 0; i < step; ++i) { for (var j = i + step; j < this.length; j += step) { var k = j, value = this[j]; while (k >= step && this[k - step] > value) { this[k] = this[k - step]; k -= step; } this[k] = value; } } } } Array.prototype.quickSort = function(s, e)
{ if (s == null) s = 0; if (e == null) e = this.length - 1; if (s >= e) return; this.swap((s + e) >> 1, e); var index = s - 1; for (var i = s; i <= e; ++i) { if (this[i] <= this[e]) this.swap(i, ++index); } this.quickSort(s, index - 1); this.quickSort(index + 1, e); } Array.prototype.stackQuickSort = function()
{ var stack = [0, this.length - 1]; while (stack.length > 0) { var e = stack.pop(), s = stack.pop(); if (s >= e) continue; this.swap((s + e) >> 1, e); var index = s - 1; for (var i = s; i <= e; ++i) { if (this[i] <= this[e]) this.swap(i, ++index); } stack.push(s, index - 1, index + 1, e); } } Array.prototype.mergeSort = function(s, e, b)
{ if (s == null) s = 0; if (e == null) e = this.length - 1; if (b == null) b = new Array(this.length); if (s >= e) return; var m = (s + e) >> 1; this.mergeSort(s, m, b); this.mergeSort(m + 1, e, b); for (var i = s, j = s, k = m + 1; i <= e; ++i) { b[i] = this[(k > e || j <= m && this[j] < this[k]) ? j++ : k++]; } for (var i = s; i <= e; ++i) this[i] = b[i]; } Array.prototype.heapSort = function()
{ for (var i = 1; i < this.length; ++i) { for (var j = i, k = (j - 1) >> 1; k >= 0; j = k, k = (k - 1) >> 1) { if (this[k] >= this[j]) break; this.swap(j, k); } } for (var i = this.length - 1; i > 0; --i) { this.swap(0, i); for (var j = 0, k = (j + 1) << 1; k <= i; j = k, k = (k + 1) << 1) { if (k == i || this[k] < this[k - 1]) --k; if (this[k] <= this[j]) break; this.swap(j, k); } } } function generate()
{ var max = parseInt(txtMax.value), count = parseInt(txtCount.value); if (isNaN(max) || isNaN(count)) { alert("个数和最大值必须是一个整数"); return; } var array = []; for (var i = 0; i < count; ++i) array.push(Math.round(Math.random() * max)); txtInput.value = array.join("\n"); txtOutput.value = ""; } function demo(type)
{ var array = txtInput.value == "" ? [] : txtInput.value.replace().split("\n"); for (var i = 0; i < array.length; ++i) array[i] = parseInt(array[i]); var t1 = new Date(); eval("array." + type + "Sort()"); var t2 = new Date(); lblTime.innerText = t2.valueOf() - t1.valueOf(); txtOutput.value = array.join("\n"); } </script> </head> <body onload="generate();"> <table style="font-size:12px;"> <tr> <td align="right"> <textarea id="txtInput" style="width:120px;height:500px;" readonly></textarea> </td> <td width="150" align="center"> 随机数个数<input id="txtCount" value="500" style="width:50px" /><br /><br /> 最大随机数<input id="txtMax" value="1000" style="width:50px" /><br /><br /> <button onclick="generate()">重新生成</button><br /><br /><br /><br /> 耗时(毫秒):<label id="lblTime"></label><br /><br /><br /><br /> <button onclick="demo('bubble');">冒泡排序</button><br /><br /> <button onclick="demo('selection');">选择排序</button><br /><br /> <button onclick="demo('insertion');">插入排序</button><br /><br /> <button onclick="demo('shell');">谢尔排序</button><br /><br /> <button onclick="demo('quick');">快速排序(递归)</button><br /><br /> <button onclick="demo('stackQuick');">快速排序(堆栈)</button><br /><br /> <button onclick="demo('merge');">归并排序</button><br /><br /> <button onclick="demo('heap');">堆排序</button><br /><br /> </td> <td align="left"> <textarea id="txtOutput" style="width:120px;height:500px;" readonly></textarea> </td> </tr> </table> </body> </html>
3 juillet 食物之间的禁忌
17 mars “乱穿马路”用英语怎么说?(转载)嘿,红灯亮了,别乱穿马路!“乱穿马路”用英语怎么说? Jaywalk(乱穿马路)常用来形容“行人走路不遵守交通规则擅闯红灯”,它的渊源颇带有歧视性意味,可以说是“城里人对乡下人的一种嘲弄”。 早在16世纪,当城市刚刚在英国发展起来的时候,进城的乡下人常被城镇居民戏称为jay(“一种呆头呆脑、唧唧喳喳叫不停的鸟”,此处可理解为“乡巴佬”)。乡下人说话声音大、不懂交通规则、看到城里“巨大”建筑时惊诧不已——这种少见多怪、缺乏“文明”的举止遭到城里人的耻笑,jay(乡巴佬)几乎成了“呆子、傻子”的代名词。 因为“不懂交通规则”是jay(乡巴佬)的重要标志,到20世纪初,那些“不遵守交通规则擅闯红灯”的行人就被戏称为jaywalker,相应的,“乱闯红灯”则可表达为jaywalking。 10 mars 饮用酸奶的几点建议!(转载)1)酸奶不能加热喝。 酸奶一经加热,所含的大量活性乳酸菌便会被杀死,不仅丧失了它的营养价值和保健功能,也使酸奶的物理性状发生改变,形成沉淀,特有的口味也消失了。因此饮用酸奶不能加热,夏季饮用宜现买现喝,冬季可在室温条件下放置一定时间后再饮用。 2)酸奶不要空腹喝。 当你饥肠辘辘时,最好别拿酸奶充饥,因为空腹时胃内的酸度大(PH值2),乳酸菌易被胃酸杀死,保健作用减弱。饭后2小时左右,饭后胃液被稀释,胃内的酸碱度(PH值上升到3~5)最适合于乳酸菌生长(适宜乳酸菌生长的PH值酸碱度为5.4以上)。因此,这个时候是喝酸奶的最佳时间。 3)酸奶不宜与抗菌素同服。 氯霉素、红霉素等抗生素、磺胺类药物可杀死或破坏酸奶中的乳酸菌,使之失去保健作用。不过,这并不影响酸奶中营养物质的含量以及消化吸收。 4)酸奶饮后要及时漱口。 随着酸奶和乳酸系列饮料的发展,儿童龋齿率也在增加,这是与乳酸对牙齿的腐蚀作用有关。所以,喝完酸奶后要及时漱口,或者最好使用吸管,可以减少乳酸接触牙齿的机会。 5)酸奶需要冷藏。 酸奶需在4℃下冷藏,在保存中酸度会不断提高而使酸奶变得更酸,如果保管条件好,酸奶不会变坏,否则会使酸奶生长菌、酵母或芽孢杆菌而使其变质,这样的酸奶不能食用。夏天热时购买酸奶一定要看卖奶的有没有冰柜保存,否则很难保证酸奶的质量。 3 mars 钟南山新年给白领“送健康”钟南山新年给白领“送健康”--亲述养生四大法宝
1.心理平衡——“最好的医生就是你自己”
钟南山教授表示,养生第一要义就是心理平衡,这是最重要也最 难做到的一点。人们往往被忧虑、惧怕、贪求、怯懦、嫉妒和憎恨等
不良情绪困绕。科学研究显示,情绪低落时人体的抗癌功能会衰退百
分之二十以上。
要做到心理平衡,先要有一个明确的生活目标,并执著地去追求 。调查显示,有明确生活目标的人的长寿几率相对要高。但这个目标
不能太苛求,以至于以牺牲自己的健康为代价。人要学会知足长乐。
在讲到具体的平衡技巧的时候,钟教授引用了一句古话:祸兮福 之所倚,福兮祸之所伏。“即要从失败与挫折中寻找积极因素,从而
达到新的心理平衡。”
就此钟教授讲述了一段亲身经历。2003年钟教授被检查出有小面 积的心肌梗塞,他的情绪一度非常低落。他的表哥听说后,竟向他庆
贺:“第一,你不是在飞机上发病的,诊治及时;第二,这次是小范
围的心肌梗塞,算是给你个教训,提醒你以后要注意身体。 你说
我是不是该庆贺你?”钟教授听后想想是这个道理,心情舒缓,病情
也很快好转了。
另外,钟教授认为“养生先立品,仁者自会长寿。”因为乐于助 人的人往往人缘好,这就会带来凝聚力和好心情。
钟教授还建议,白领精英们要善于培养自己,争取实现从“将才 ”向“帅才”的转化。
2.合理膳食——“若要身体安,三分饥和寒”
钟南山表示,现在很多白领的饮食状况是“早饭不吃了,中饭凑
合熬,晚饭撑个饱”。这跟健康的饮食习惯截然相反。因此,钟教授
希望白领们要合理调整的自己的膳食,不要拿自己的身体开玩笑。
合理膳食另外一点是不要暴饮暴食,进食到七八分饱最合适。这 是古今老寿星们的经验之谈。此外,戒烟限酒也很重要。
3.适当运动——“生命在于运动”
钟教授指出,打球、散步、游泳等常规锻炼是不够的,还应该要
针对力量、灵敏、耐力和柔韧四个方面做一些体质锻炼。适当的锻炼
可以延缓肌肉松垮、骨骼疏松等人体衰老过程,使人老当益壮。
他同时也提醒人们不宜过度运动。长期坚持做适当的有氧运动对 身体最好。
4.早防早治——“轻伤要下火线”
要提高警觉,对高血脂、高血压、脂肪肝等常见病症做到早发现
早治疗。身体如有不适,一定要及时检查,把病患扼杀在萌芽期。像
抽烟史超过10年这样的高危人群,更是要提高警惕。
近年来,乳腺癌、宫颈癌已成为危害我国女性的健康杀手。这些 疾病如果做到提前预防,是可以治愈的。
27 février 七律·短信拜年短信不怕远行难,祝福送到您面前。
新春快乐吉祥到,万事如意幸运连。
合家欢乐少红脸,事业有成多赚钱。
更愿金猪增福祉,佑国佑民平安年。
--责任改编 后天会更好
于二零零七年 除夕晚 14 février 时光如水,忙碌的2006即将结束 年年岁岁花相似,岁岁年年人不同!虽然我们早已经迎来了公元纪年2007年,但是在世界上的大多数华人心中,中国传统的一个农历旧年的结束才算是一年的结束,同样一个农历新年的开始从算是一年的开始。
即将过去的一年对我来说算是变化的一年。工作环境的变化、生活环境的变化、朋友圈子的变化、社会圈子的变化、心境的变化,所有的变化交织成复杂的溶剂冲刷着我的心灵。世界上的万事万物都在不断的变化着,让我在这不断变化中成熟和成长,直到理想化为现实,起到一个崭新的新年。 |
|
|