手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表分类:Javascript

常用函数:copyToClipboard

COPY文字到剪贴板很方便,我是指在IE下面,而其他的就有点复杂了。firefox下面有安全选项的。所以很多人都采用了flash来实现。如果不计flash,那么下面这个函数就十分有用了,可能是转的过多了,也不记得来源是哪里了。如果是原作者看到,请提示一下,一定加上您的链接。

JavaScript代码
  1. function copyToClipboard(txt) {     
  2.     if(window.clipboardData) {     
  3.             window.clipboardData.clearData();     
  4.             window.clipboardData.setData("Text", txt);     
  5.     } else if(navigator.userAgent.indexOf("Opera") != -1) {     
  6.          window.location = txt;     
  7.     } else if (window.netscape) {     
  8.          try {     
  9.               netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");     
  10.          } catch (e) {     
  11.               alert("被浏览器拒绝!\n请在浏览器地址栏输入'about:config'并回车\n然后将'signed.applets.codebase_principal_support'设置为'true'");     
  12.          }     
  13.          var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);     
  14.          if (!clip)     
  15.               return;     
  16.          var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);     
  17.          if (!trans)     
  18.               return;     
  19.          trans.addDataFlavor('text/unicode');     
  20.          var str = new Object();     
  21.          var len = new Object();     
  22.          var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);     
  23.          var copytext = txt;     
  24.          str.data = copytext;     
  25.          trans.setTransferData("text/unicode",str,copytext.length*2);     
  26.          var clipid = Components.interfaces.nsIClipboard;     
  27.          if (!clip)     
  28.               return false;     
  29.          clip.setData(trans,null,clipid.kGlobalClipboard);     
  30.          alert("复制成功!")     
  31.     }     
  32.     

Tags: clipboard, flash, firefox

CSS中media标签的作用

在网页中,看到使用CSS的地方,大多数都会有这么一句:

XML/HTML代码
  1. <link rel="stylesheet" type="text/css" href="global.css" media="screen">    

那么,究竟这个media有什么作用呢?通过查下资料了解到:

XML/HTML代码
  1. all-- 用于所有设备类型  
  2. aural-- 用于语音和音乐合成器  
  3. braille-- 用于触觉反馈设备  
  4. embossed-- 用于凸点字符(盲文)印刷设备  
  5. handheld-- 用于小型或手提设备  
  6. print-- 用于打印机  
  7. projection-- 用于投影图像,如幻灯片  
  8. screen-- 用于计算机显示器  
  9. tty-- 用于使用固定间距字符格的设备。如电传打字机和终端  
  10. tv-- 用于电视类设备   

虽然media有10个值,但我们经常看到的也就print,和screen两种。当然也会有没有media标签的情况,这个时候其实就是默认media="all"。
既然如此,那我们也就相当于了解了,如果你需要打印,那么你在按下打印的时候,系统就会默认调用media="print"所对应的CSS文件了。也因此这样可以让你更好的整理你的打印页面,比如把一些不需要打印的内容屏蔽掉、优化打印页面(让内容更利于被打印)等等

虽然我不是前端,但。。了解一下这些内容还是有点用处的。

Tags: css, media, screen, print

关注:jQuery Mobile来了!

  为了让移动设备也能用上jQuery,jQuery开发团队发布了jQuery移动设备版开发项目jQuery Mobile Project(http://jquerymobile.com)。jQuery Mobile不仅会给主流移动平台带来jQuery核心库,而且会发布一个完整统一的jQuery移动UI框架。

  对于大名鼎鼎的jQuery开发团队来说,当然要让jQuery Mobile支持全球主流的移动平台,而不仅仅是北美流行的移动平台。想要知道jQuery Mobile项目将要做些什么吗?请看jQuery移动平台策略;想要知道jQuery Mobile项目将会支持哪些浏览器吗?请看Mobile Graded Browser Support

大小: 58.04 K
尺寸: 480 x 376
浏览: 1990 次
点击打开新窗口浏览全图

  jQuery Mobile开发团队正在紧张工作,准备那些要支持的移动设备并针对这些设备进行测试。他们争取在今年晚些时候发布jQuery Mobile。如果你想为jQuery Mobile提供帮助,请加入jQuery Mobile社区的讨论组

  jQuery Mobile项目已经得到了Palm, Mozilla等移动浏览器厂商的赞助。

  jQuery Mobile开发团队说:“能开发这个项目,我们非常兴奋。移动Web太需要一个跨浏览器的框架,让开发人员开发出真正的移动Web网站。我们将尽全力去满足这样的需求。”

  编者:移动互联网,挡不住的趋势...

  英文原文:Announcing the jQuery Mobile Project

  博客园编译

Tags: jquery, jquery mobile

jQuery 绑定自定义事件

一般情况下,我们对于jQuery的事件绑定都是采用bind,从1.3开始。可以同时绑定多个事件了。这是非常方便的情况,但是对于checkbox和radio来说会有几种情况,比如checkbox选中时,本身就触发了click事件,这时候怎么办?如果为checkbox添加label那么lable在点击时,能不能触发checkbox的click事件?这都需要研究一下。比如,我们在checkbox上绑定了click事件,平时我们在选中的时候都有触发。但是在label上点击的时候,就要再额外加一下了。

$("input[type=checkbox]").bind('click',function(){
  //...
})
$('label').click(function(){
   $(this).children('input[type=checkbox]').click();
})

基本上也可以触发这种事件。
一般元素在绑定的时候,都是绑定click,change,等

//但如果想触发系统事件,就必须是evtClick了。【这里其实是自定义事件。在绑定后还是需要单独触发一下。原来我写错了。】

可以参考http://www.cnblogs.com/mamboer/archive/2010/08/11/1797532.html

Tags: jquery, bind

如何调试JS错误

做网页开发的时候不可避免会用到JS,当然更不可避免的就会遇到JS错误。当你打开网页时,IE左下角的感叹号是不是让你很郁闷?怎么调试就成了必修课了。

一般来说,IE的出错信息还是能够基本定位到代码中,FF的相对定位的就更准确一些。只是有时候IE报错为0行或者N行(这个N超出了页面行数)时,就比较让人郁闷。而更头疼的是,如果这个代码在FF完全正常,那真是想死的心都有了。

IE下面,可能更多的时候还是利用微软自己提供的工具来进行查错:ms script debugger,只是知道的人很少,用的人更少。现在firebug lite已经登录IE平台(其实也不算是登录,只是加载firebug lite类库而已。不过,这已经能解决大部分问题了)。FF下面嘛,那就主推firebug,随着firebug的流行,一些附加的东西都有了,如firephp,firecookie,eventbug等插件也越来越让人离不开它。safari和chrome这些基于webkit的浏览器。也都有着自带的js调试工具,可用性我就不太清楚了。没用过,更多的时候只保证IE和FF正常就OK了。webkit虽然份额随着国内所谓双核浏览器的开发而增长的较快,但真正的使用者还仅限于那一小撮人群而已。

于是,这,又成了firebug等的天下(IE8已经自带调试工具,快捷键与firebug一样,界面差不多)。

不废话,下面是我转贴的文章,介绍了一些常见的调试方法,其实也不能算是调试,也可以说是代码的一些写法罢了。【略做整理】

A  使用alert() 和document.write() 方法监视变量值
如果要中断代码的运行,监视变量的值,则使用alert() 方法;
如果需要查看的值很多,则使用document.write() 方法,避免反复单击“确定”按钮;
 
B  使用window.onerror 事件
当页面出现异常时,onerror 事件会在window 对象上触发。它能在一定程度上告诉开发者相关的错误信息。
示例:

JavaScript代码
  1. <script type="text/javascript">  
  2.   function myerror(_message,_url,_line)  
  3.   {  
  4.      alert("错误信息:" + _message  
  5.           +"\n错误的URI:" + _url  
  6.           +"\n错误的行数:" + _line  
  7.      );  
  8.   
  9.      return true//屏蔽系统的事件  
  10.   }  
  11.   //绑定错误事件  
  12.   window.onerror = myerror;  
  13.   
  14.   //触发错误示例:  
  15.   window,onload = test;  
  16. </script>  
注意:在IE 中,触发error 事件后,正常的代码会继续运行,所有的变量和数据都会保存下来,在其onerror 事件处理方法中可以正常访问到;而在Firefox 中,触发error 事件后,一切都结束,所有的变量和数据都将被销毁。
 
C  使用 try...catch 语句找错误
示例:
JavaScript代码
  1. <script type="text/javascript">  
  2.   try  
  3.   {  
  4.       alert(触发异常);  
  5.   }  
  6.   catch (_ex) //可以省略“_ex”参数  
  7.   {  
  8.      var err = "错误信息";  
  9.      for (var i in _ex)  
  10.      {  
  11.         err += "\n参数名:" + i  
  12.              + "\t参数值:" + _ex[i];  
  13.      }  
  14.      alert(err); //打印错误  
  15.   }  
  16.   finally  //finally 可以被省略...  
  17.   {  
  18.      alert("finally 总是会运行");  
  19.   }  
  20. </script>  

注意:try...catch 并不能很好的处理JavaScript 的语法错误。
示例:
JavaScript代码
  1. <script type="text/javascript">  
  2.   try  
  3.   {  
  4.       alert("触发语法错误")); //多了半边“)”  
  5.   }  
  6.   catch (_ex) //可以省略_ex参数  
  7.   {  
  8.      var err = "错误信息";  
  9.      for (var i in _ex)  
  10.      {  
  11.         err += "\n参数名:" + i  
  12.              + "\t参数值:" + _ex[i];  
  13.       }  
  14.      alert(err); //打印错误  
  15.   }  
  16. </script>  
该示例并没有进入catch 块中。
 
D  使用相关调试器
在IE 和Firefox 浏览器中,可以使用相关的调试器或插件对JavaScript 进行调试。
 
●  在Firefox 浏览器中,可以使用其自带的“错误控制台”。操作步骤如下:
      打开Firefox 浏览器 → 在菜单条“工具”中 → 选择“错误控制台”即可。
     在没有其他插件的情况下,其自带的“错误控制台”是一个非常不错的选择。
 
另外,在Firefox 浏览器中,还有一些很不错的调试器,如:Venkman、Firebug 等。
         Venkman 调试器安装后,可以在Firefox 浏览器 → 在菜单条“工具”中 → 选择“JavaScript  Debugger ”命令启用;
         Firebug 调试器安装后,可以在Firefox 浏览器 → 在菜单条“工具”中 → 选择“Firebug”→ 选择“打开 Firebug”即可;
 
●  在IE 浏览器中,可以使用 Microsoft  Script  Debugger 调试器
       Microsoft  Script  Debugger 是微软随IE 4 一同发布的一个IE插件,可以从微软的官方网站上免费下载。
       下载安装以后,必须将IE 浏览器的调试选项打开才能使用。操作步骤如下:
       1>   打开IE 浏览器 → 选择菜单栏的“工具”→ “Internet 选项”命令 → “高级”选项卡 → 将“禁用脚本调试(Internet Explorer )”复选框中的勾去掉即可。
       2>   当IE 浏览器正在浏览页面时,运行Microsoft  Script  Debugger 调试器工具即可进行调试。
       在Microsoft  Script  Debugger 调试器的 Running  Document 面板中选择开启的页面文件(只读),然后按F9 可以设置断点调试。另外,其Command  Window 面板也是一个很有用的功能,它能在代码断点停止时,在其中输入变量名并回车,便可看到此时变量的值;Command  Window 面板甚至可以接受简单的JavaScript 命令。但Microsoft  Script  Debugger 调试器自身还存在一个bug 问题。

原文出自:http://www.cnblogs.com/xugang/archive/2010/08/05/1793392.html

Tags: javascript, error, debug