昨天,今天,明天,每天的每天,你是否都多懂得一点点...

星期三, 四月 15, 2009

encodeuri


很多人喜欢点别人发过来的链接,而不是复制,粘贴. 这本来也没什么,但很多地方,一碰到中文网址,链接就只到英文部分,从中文部分断开了. 这样点进去的话,链接肯定是不正确的.为了不让这种情况发生,我便想干脆把中文链接变成英文的. 用JS就可以实现.

<body>
this is my encoder
<br/>
<input type = "text" size = "100" id = "txtUrl" value = "" />
<br/>
<input type = "button" value = "convert" onclick = "convert()" />
<br/>
<textarea id = "txtAResult" rows = "3" cols = "100%"> result will be here </textarea>
<br/>
<input type = "button" value = "copy to clipboard" onclick = "url2Clip()" />
<br/>
<script>
 function convert(){
  url = "http://www.cjl520.com/免费下载/小曹影楼素材-SWF转VCD%20DVD工具(最好的FLASH转DVD工具).rar"
  if (txtUrl.value != ""){
  url = txtUrl.value;
  }
  url = encodeURI(url);
  url = url.replace("%25","%");
  txtAResult.value = url;
  
 }

 function url2Clip(){

  
  window.clipboardData.setData("text",txtAResult.value)
 }

 

</script>
</body>
然后我把它存成 HTA 文件,昨天用了个HTA文件觉得很神奇,看看了里面的内容, 觉得就是JAVASCRIPT, 于是试着把我写的HTML存成HTA格式,居然就直接能用了.让我诧异的是,用HTML和HTA输出的结果居然不同,晕.后来我才发现,是OPERA和IE中的encodeuri 这个函数输出的结果不同,奇了怪了.网上查它们的区别,查了很久,无果. 最后我发现,原为是默认编码不同,晕炫. 因为没有标明网页的编码, OPERA默认是UTF-8,而IE默认是GB2312...所以结果就不同了. 把IE的编码改成UTF-8后,结果就一样了. JS引擎看来是差不多的.OEPRA可以打开HTA文件,就跟打开HTML一样. IE打不开,会下载.

window.clipboardData.setData("text",txtAResult.value) 这句在OPERA中无效, 用过OEPRA的人应该知道, 很多网页中,有一些"点此复制"的按钮在OPERA中都无效,也许可以设置成有效吧,只不过我不懂罢了.

--
Feng

没有评论:

其它博客地址

此博客的同步博客地址: http://fengnz.wordpress.com
这里进入我的MSN SPACE.