努力思考 + 实践, 眼高手低是不行的. 注册 | 登陆
浏览模式: 标准 | 列表分类:交流丨网页相关

顽皮的闭包

部分引用来源:http://www.cnblogs.com/rubylouvre/archive/2009/07/24/1530074.html

问题描述
有个函数fn, 定义在某作用域r中, 函数fn的定义语句中包含对作用域v的某个变量v的引用, 由于变量v的作用域在v中, 所以倘若函数a将变量v绑定到位于其他作用域的应用中时, 变量v无法以window.v 或者 obj.v 的形式在后期引用, 只好以指针或者变量地址方式保存在函数a中用以持久变量v.

[详见全文]

» 阅读全文

Tags: javascript, 闭包

Ajax开发中的跨域

From: http://www.conis.cn/post/63.html (版权所有©Conis)

  有没有在开发的时候出现过样的错误,在Firefox的错误控制台中显示[uncaught exception: (XMLHttpRequest.open)],错误提示中间可能还会有一些乱码,出现这种问题一般都是因为跨域操作。
  跨域操作就是在A域读取B域的数据,例如在http://www.conis.cn的网站获取http://www.romboo.com的数据,但在Firefox中,XMLHttpRequest对跨域有些限制,怎么办?一般我们有两种办法。
  第一种是曲线救国,我们可以由本域的服务器程序去取数据,然后输出(response)到客户端,这样Ajax就相当于在本域内取数据了,缺点是对服务器压力比较大,如图1

大小: 4.27 K
尺寸: 258 x 202
浏览: 98 次
点击打开新窗口浏览全图
图1

  第二种方法可以借用Script的src动态属性,因为src对域没有任何限制,但这种方法的缺点是服务器返回只能是avascript代码,这样的缺陷也就限制了异域名必需是可控的。打个比方,如果你想在你的网站获取新浪的首页(当然我们不会这么做,因为没有任何意义),你就中能采用第一种方法,因为新浪的首页返回的内容是你不可控的。实现的方法如下:

JavaScript代码
  1. <script language="Javascript" src="" id="remote"></script>   
  2. <script language="Javascript">   
  3. function get(url) {   
  4.     var obj = document.getElementById("remote");   
  5.     obj.src = url;   
  6.     if (obj.readStatus == 200) {   
  7.         //在这里,你可以调用服务器返回的函数或者变量       
  8.     }   
  9. }   
  10. </script>  

Tags: ajax

用css来控制图片显示大小

有时候图片太大,会破环网页整齐的布局。这时可以用css来强制按比例压缩图片的高度或宽度

css代码如下: 

CSS代码
  1. img, a img{     
  2.   border: 0;    
  3.   margin: 0;    
  4.   padding: 0;    
  5.   max-width590px;    
  6.   width: expression(this.width>590?"590px":this.width);    
  7.   max-height590px;    
  8.   height: expression(this.height>590?"590px":this.height);    
  9. }   

这样当图片的高度或宽度若超过590px,将会按比例压缩成590px,如果不超过则按原大小显示。

Tags: css

IE与FF下对节点操作的问题若干

好久没碰JavaScript,都快忘光了,惭愧惭愧。

今天鸭子说他想让他博客文章的首段首字下沉显示,虽然说可以用CSS中的伪对象first-letter进行样式控制,但是没办法精确到首段(文章内容是FCK生成的N个段落,加ID这个方法也行不通了),也就是定义后文章的每段首字都会下沉,这样就达不到类似报刊的排版效果了,我思量了一下,也只能用JS来解决了。

XML/HTML代码
  1. <div id="Article_Content">  
  2.   <p>段落1</p>  
  3.   <p>段落2</p>  
  4.   <p>段落3</p>  
  5. </div>  
JavaScript代码
  1. <script type="text/javascript">   
  2. <!--   
  3. window.onload = function() {   
  4.     var content = document.getElementById("Article_Content");   
  5.     var p = content.getElementsByTagName('p')[0];   
  6.     p.setAttribute("class""yourStyle");     //FireFox   
  7.     p.setAttribute("className""yourStyle"); //IE   
  8. };   
  9. //-->   
  10. </script>  

注意,在IE下给元素节点添加class属性必须用className……

除此之外,还发现一个问题:如果你想获得某个容器下的第一个节点,IE和FF还是有区别滴~如使用

JavaScript代码
  1. var obj = document.getElementById['Article_Content'].childNodes[0];  

可以获得Article_Content容器下的第一个节点,但是,使用

JavaScript代码
  1. alert(obj.nodeType);  

测试,发现IE下获得的是元素节点(1),而在FF下获得是文本节点(3),在这种情况下,你可以用循环遍历获得你想要的节点

JavaScript代码
  1. var rightNode = someNode.childNodes[0];   
  2. while(rightNode.nodeName != 'p'){   
  3.   if(rightNode.nextSibling){   
  4.     rightNode = rightNode.nextSibling;   
  5.   }else{   
  6.     break;   
  7.   }   
  8. }  

或者使用上文的

JavaScript代码
  1. var p = content.getElementsByTagName('p')[0];  

精确获得。

参考文章:开发跨浏览器javascript---《Ajax基础教程》笔记

Tags: javascript, ie, firefox, css

HTTP协议的头信息详解

HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP 协议的详细内容请参 考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户 信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以 及可能的实体内容。

  通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可 选的消息体组成。HTTP的头域包括通用头,请求头,响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域 值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。

详见全文

» 阅读全文

Tags: http协议, header, 头信息

Adobe Extension Manager ( 扩展管理器 )

之前安装的是 Adobe CS3 Design Premium, 但是不喜欢这个官方套装把什么7788的都安装, 我只需要 Dreamweaver、Photoshop、Fireworks、Flash.

后来找到了国人精简的4合1安装包, 发现没有Adobe Extension Manager, 这下一些开发需要的扩展(smartyDWT)就没办法安装了, 于是就想去官网碰碰运气, 结果还真给我找着了, 嘿嘿.


轻松安装新的扩展并管理已随 Adobe Extension Manager 提供的扩展。 Adobe Extension Manager 可以与 Adobe Dreamweaver、Adobe Fireworks 和 Adobe Flash 一起使用。

安装 Extension Manager 1.8Extension Manager 1.8 包含对新版 Dreamweaver CS3、Fireworks CS3 和 Flash CS3 的支持。

下载页面:
http://www.adobe.com/cn/exchange/em_download/

直接下载: 
http://download.macromedia.com/pub/dw_exchange/extension_manager/win/em_install.exe

Tags: adobe, dreamweaver, 扩展管理器

元素 float:right 后右对齐换行原因

XML/HTML代码
  1. <p style="width: 400px; height: 20px; text-align: left;">新闻新闻新闻<span style="float: right">2007-08-18</span><span style="clear: both;"></span></p>  
  2.   
  3. <p style="width: 400px; height: 20px; text-align: left;"><span style="float: right">2007-08-18</span>新闻新闻新闻</p>  

效果:

 大小: 1010 bytes
尺寸: 420 x 105
浏览: 322 次
点击打开新窗口浏览全图

原因: 

当非float的元素和float的元素在一起的时候,如果非float元素在先,那么float的元素将被排斥
也就是说,你的span是float:right,但是你文本还是float:none

如果要让两者占据同一行:

  1. 要么你把span先于文本显示 :<span style="float: right">2007-08-18</span> 示例第3行)
  2. 要么把文本也设成float:<span style="float: left">新闻新闻新闻</span>

参考: http://www.zvv.cn/blog/?action=show&id=31

Tags: css技巧, 浮动, float, 换行

CSS中Float概念相关文章采撷

From: http://www.chinahtml.com/webdesign/5/2007/CSScss-118254346114547.shtml

 Float(浮动)概念也许是CSS中最让人迷惑的一个概念吧。Float经常被错误理解,而且因为将上下文元素全部浮动导致的可读性、可用性问题备受责难。然而,这些问题的根源并不在于理论本身,而是开发人员以及浏览器对理论的解读造成的。

如果你认真的去读一下浮动概念,你会发现并不像所见的那样复杂。大多数问题都是由于老版本的IE带来的(我只是猜想)。如果你知道这些bug,你就能避免这些问题。

让我们尝试去解决这些问题并澄清一些以前使用浮动的误解。我们参考了成打的相关文章,并选取了最为重要的一些你必须了解的问题。

详见全文

» 阅读全文

Tags: css技巧, css, 浮动, float

Records:1512