Sep 26

javascript中trim函数的实现 不指定

felix021 @ 2008-9-26 20:21 [IT » 网络] 评论(1) , 引用(0) , 阅读(6580) | Via 本站原创
在javascript的String对象(字符串)里面没有trim方法,使得很多时候在判断的时候挺无奈
刚刚看到了prototype.js的源码,发现里面实现了这个方法,用的方法其实很简单——
用正则表达式来把首位的空格替换成空串。代码如下
replace(/(^\s*)|(\s*$)/g,  "");

如果要更进一步给String定义一个trim函数,可以用如下代码
String.prototype.trim = function(){
  return this.replace(/^\s*|\s*$/g, "");
}

非常简单,却非常牛B
Sep 23
参考了boblog的UBB代码写了这个函数。

给id为o_id的元素中选中的文本添加o_tag对应的UBB表情
e.g.  
addUBB("content", "b");
addUBB("content", "i");

function addUBB(o_id, o_tag){
    if(navigator.userAgent.indexOf("MSIE") != -1){ //IE
        var sel = document.selection;
        var range = sel.createRange();
        if(!(sel.type=="Text" && range.parentElement().id==o_id))return;
        range.text = "["+o_tag+"]"+range.text+"[/"+o_tag+"]";
    }else{ //FireFox
        var obj = document.getElementById(o_id);
        var selStart = obj.selectionStart;
        var selEnd = obj.selectionEnd;
        if(selStart == selEnd) return;
        var a = obj.value.substring(0, selStart);
        var b = obj.value.substring(selStart, selEnd);
        var c = obj.value.substring(selEnd, obj.value.length);
        obj.value=a+"["+o_tag+"]"+b+"[/"+o_tag+"]"+c;
    }
}
Sep 23
IE给iframe设置的那个3D边框效果真是难看阿。。
不论怎么设置style中的border属性都没有用
后来在网上找到一篇文章[点击打开]
解决方案其实很简单:
<iframe src="ooxx.html" frameborder="0"></iframe>

OK,看起来舒服多了:)
Sep 21
一下代码来自w3school

function loadXMLDoc(dname)
{
var xmlDoc;
// code for IE
if (window.ActiveXObject)
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  }
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
  {
  xmlDoc=document.implementation.createDocument("","",null);
  }
else
  {
  alert('Your browser cannot handle this script');
  }
xmlDoc.async=false;
xmlDoc.load(dname);
return(xmlDoc);
}
Sep 20

Ubuntu下网络参数配置 不指定

felix021 @ 2008-9-20 17:48 [IT » 操作系统] 评论(0) , 引用(0) , 阅读(4761) | Via 本站原创
打开配置文件
$ sudo vi /etc/network/interfaces

DHCP参数配置
引用
auto eth0
iface eth0 inet dhcp


Static IP (静态IP)参数配置
引用
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1


Restart the network
$ sudo /etc/init.d/networking restart
Sep 18
在写Felix的javascript运行环境的时候
为了方便使用,Felix希望能够捕捉到CTRL+Enter按键作为运行的快捷键
以前写过for IE的代码,非常简单:
<script language="javascript">
function myKeyPress(){
  alert(event.keyCode);
}
</script>
<body onkeypress="myKeyPress()">
......

但是这样的代码在Firefox下根本不能运行,因为event不是Firefox的一个全局对象。
查了好多资料,终于明白了在Firefox下要这样写代码才行:
<script language="javascript">
function myKeyPress(evt){
  alert(evt.which);
}
</script>
<body onkeypress="myKeyPress(evt)">
......

但是很遗憾,这样的代码在IE下又不能运行——好吧,采取折衷方案如下:
<script language="javascript">
function myKeyPress(evt){
    evt = (evt) ? evt : ((window.event) ? window.event : "") //兼容IE和Firefox获得keyBoardEvent对象
    var key = evt.keyCode?evt.keyCode:evt.which; //兼容IE和Firefox获得keyBoardEvent对象的键值
    if(evt.ctrlKey && (key == 13 || key == 10)){ //同时按下了Ctrl和回车键
        //do something;
    }
}
</script>
<body onkeypress="myKeyPress(evt)">
......

于是代码终于可以在IE和Firefox运行了。

总结一下需要注意的地方:
1. 取得keyBoardEvent对象
2. 取得keyBoardEvent对象的键值
3. onkeypress="myKeyPress(event)" 函数需要一个参数

以上很大一部分是参考了来自以下网页:
Javascript Madness
该网页详细介绍了几个很容易令人发疯的兼容性问题。。。。
Sep 18

Felix的javascript运行环境 不指定

felix021 @ 2008-9-18 18:56 [IT » 网络] 评论(0) , 引用(0) , 阅读(4629) | Via 本站原创
最近经常要测试javascript代码
但是又不想专门写一个文件,然后保存,双击……
虽然可以在浏览器地址栏里面写 javascript: alert("ooxx");
但是对于稍微长一点的代码它又很不好编辑
于是今天花了点时间写了个——Felix的javascript运行环境
确实就是一个HTML页面,有一个textarea,里面可以写javascript代码
写完以后按下CTRL+Enter或者点击运行
页面的脚本会捕捉到这些事件,然后调用eval()函数
把textarea里面的代码当作javascipt代码运行。
值得一提的是使用了try{eval(code.value);}catch(e){alert(e);}这样的结构
也就是说如果你输入的代码有问题,还能够提示错误,非常方便:)

点击这里打开:Felix的javascript运行环境
Sep 18
主要是对Date对象的使用。
测试一下:
<script language="javascript">
function showTime(){
var a=new Date();
var y = a.getFullYear()+"-";
var m = (a.getMonth()+1)+"-";
var d = a.getDate()+" ";
var h = a.getHours()+":";
var x = a.getMinutes()+":";
var s = a.getSeconds()+".";
var ms=a.getMilliseconds();
alert(y + m + d + h + x + s + ms);
}

//取得时间戳的办法(精确到毫秒):
function timestamp(){
  var a = new Date();
  return Date.parse(a) + a.getMilliseconds();
}
</script>
分页: 62/103 第一页 上页 57 58 59 60 61 62 63 64 65 66 下页 最后页 [ 显示模式: 摘要 | 列表 ]