当前位置:  编程技术>WEB前端
本页文章导读:
    ▪javascript 阻止冒泡和浏览器的默认行为      在使用javascript编程时会遇到一个问题,就是当你给html添加事件时,由于浏览器默认的为冒泡型事件触发机制,所以会触发你不想触发的事件.那么通过如下的函数可以解决这个问题。 1.阻止事.........
    ▪浏览器插件之ActiveX开发(五)           前面四篇文章都是在描述如何用C++开发基于MFC的ActiveX插件以及如果对插件进行打包和在Web页面中调用,但确忽略了一个非常重要的问题:代码签名。《浏览器插件之ActiveX开.........
    ▪两种样式表      外部样式表  采用外部样式表是最好的,它能使创建网页变的简单。将所有样式信息放在一个文件里,然后用一行代码引用它即可。  代码很容易错字,检查办法有firefox – tools – .........

[1]javascript 阻止冒泡和浏览器的默认行为
    来源:    发布时间: 2013-11-06

在使用javascript编程时会遇到一个问题,就是当你给html添加事件时,由于浏览器默认的为冒泡型事件触发机制,所以会触发你不想触发的事件.那么通过如下的函数可以解决这个问题。

 

1.阻止事件冒泡

function stopBubble(e) {
//如果提供了事件对象,则这是一个非IE浏览器
if ( e && e.stopPropagation )
//因此它支持W3C的stopPropagation()方法
e.stopPropagation();
else
//否则,我们需要使用IE的方式来取消事件冒泡
window.event.cancelBubble = true;
}

 

2.当按键后或者点击一个链接后,不希望按键或者链接执行时,可以取消返回值.即停止默认事件默认行为

//阻止浏览器的默认行为
function stopDefault( e ) {
//阻止默认浏览器动作(W3C)
if ( e && e.preventDefault )
e.preventDefault();
//IE中阻止函数器默认动作的方式
else
window.event.returnValue = false;
return false;
}

 

 示例 : 点击页面的任何URL链接 不跳转。

 

var links=document.getElementsByTagName('a');
for(var i=0;i<links.length;i++){
links[i].onlick=function(e){
alert('我不跳转,点我也没用');
stopDefault(e)
}}

 

另一个阻止冒泡常见的应用就是下拉菜单的效果,点击按钮,下拉菜单显示,在点击页面任何其它部分,下拉菜单隐藏。

 

//给document添加点击事件,点击时关闭菜单,默认情况下,点击任何元素,都会冒泡的到document

document.onclick=function(){
b.style.display="none";
}

//为点击元素显示下拉菜单的元素阻止冒泡,这样document的click事件就被阻止执行

function showMenu(e) {
var e=window.event || e;
下拉菜单.style.display="block";
if(e.stopPropagation){
e.stopPropagation()
}
else{
e.cancelBubble=true;
}
}

点击按钮.onclick=下拉菜单.onclick=showMenu;

 

  

本文链接


    
[2]浏览器插件之ActiveX开发(五)
    来源:    发布时间: 2013-11-06

     前面四篇文章都是在描述如何用C++开发基于MFC的ActiveX插件以及如果对插件进行打包和在Web页面中调用,但确忽略了一个非常重要的问题:代码签名。《浏览器插件之ActiveX开发(三)》提及了两种注册插件的方法,其中IE自动下载并注册插件的方法就涉及到签名问题,如果cab包是未签名的或签名不被信任的,IE就拒绝注册该插件。

     一、数字签名简述

     现在的各种软件星罗密布、鱼龙混杂,用户在使用软件程序时一定要十分谨慎,稍不留意,就被病毒或恶意程序侵害。代码数字签名的出现就在一定程度上解决了这个问题。那么经过数字签名的软件有什么好处?软件一旦经过数字签名,至少可以保证以下两点:

      1)该软件确实是由数字签名证书中显示的软件开发商开发的;

      2)该软件自软件开发商发布以后,没有被第三方做过任何修改。

   

      不过,要完全理解数字签名或PKI(数字签名是PKI的组成部分,Public Key Instructure),还需要理解一下基本常识,例如对称加密、非对称加密、摘要算法、公钥、私钥、数字证书、根证书等等。以下几篇文章均对这些概念做了通俗易懂的解读:

      a) 白话数字签名

      b) CA认证原理以及实现

      c) 了解数字证书

      d) 软件代码数字签名基本原理

      e) 数字签名

      f) 为什么需要PKI

      g) 数字签名(代码签名)流程

      h) 12306在线买火车票为什么需要安装根证书

    

     二、为什么ActiveX需要数字签名?

     由于ActiveX插件在运行时与本地桌面应用程序一样,对用户系统的资源有极大的访问权限,如果让任何ActiveX通过Web页面都能自动下载并注册的话,那对用户必将造成非常大的威胁。所以默认设置下,IE将对需自动下载的cab文件进行数字签名认证,只有经过数字签名了且签名认证通过的cab包才自动下载并注册到用户系统中。

      一般地,不仅仅需要对cab包进行代码签名,在打cab包之前还会对ocx文件进行代码签名。

 

     三、如何进行代码签名?

      1、首先需准备用于代码签名的相关工具SignTool.exe,可以从这里下载。

      2、申请可用于ocx文件签名的代码签名数字证书,一般是需付费的。如果是测试用,可以有几种方式:

          a) 自己创建一个测试签名证书以及根证书;

          b) 可以从www.ca365.com网站申请免费代码签名证书或测试证书(应用时需自动导入根证书到用户系统里);

          c) 借用淘宝的支付宝证书(淘宝对每个支付宝用户都可以颁发一个数字证书)。

 

          申请数字证书的过程实际上是:

           1)  在申请者的计算机上创建一个密钥对,即一个私钥和一个公钥,私钥保留在申请者计算机内,将公钥传送给CA机构;

           2)  CA机构在通过必要的线下审核后(测试证书和免费证书相当于没有审核过程的),用CA自己的私钥对申请者的申请信息进行签名(申请者信息包括申请者传过来的公钥、申请者自身基本信息等),并加上时间戳。CA对申请信息进行加密后就生成了一个证书,一般是以.cer文件的形式下发给申请者。

 

      3、用signTool工具对文件进行签名:

Signtool sign /f "xxxx.pfx" /d "卡设备读写机ActiveX" /du http://www.51diancai.com /t http://timestamp.verisign.com/scripts/timstamp.dll "xxxxx.cab"

         其中:

         xxxx.pfx 是签名证书(实际上包含了代码签名数字证书和私钥,在IE的证书管理容器里“个人”里导出时可以选择包含私钥);

         http://timestamp.verisign.com/scripts/timstamp.dll 是时间戳服务。

 

       有关代码签名以及创建测试签名证书的问题以下文章均有详细介绍,不再赘述:

  •          a) 制作临时证书为ActiveX控件签名
  •          b) 给控件做数字签名
  •          c) 微软代码签名证书使用指南
  •          d) VeriSign代码签名证书技术白皮书_v1.0_090413
  •          e) VC++开发Activex控件以及签名发布
  •           f) VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程  
  •           g) ActiveX的数字签名
  •           h) A Complete ActiveX Web Control Tutorial – CodeProject

 

    四、根证书自动安装问题

          如果数字签名证书是从VeriSign等机构购买的,一般不存在根证书问题,因为微软的IE已经默认将VeriSign设置为受信任的根证书机构了:

        

      但如果是从CA365这类不是很权威的机构申请的证书,由于这些机构的根证书默认并不在IE的“受信任的根证书颁发机构”名单里,所以在使

    
[3]两种样式表
    来源:    发布时间: 2013-11-06

外部样式表

  采用外部样式表是最好的,它能使创建网页变的简单。将所有样式信息放在一个文件里,然后用一行代码引用它即可。
  代码很容易错字,检查办法有firefox – tools – error 控制台 – 点击“警告(warnings)”就可以看到firefox 无法识别的css代码。

    关联外部样式表

<link>标签

html <link rel=”stylesheet” type=”text/css” href=/blog_article/”css/global.css”>_br/index.html>XHTML <link rel="stylesheet" type="text/css" href="/blog_article/css/global.css" />

  rel-- 表示连接类型 --- styesheet 指的是链接到样式表。
  type –- 是让浏览器知道需要哪一种数据,这里是css文件。
  href— 指向css文件位置目录。

  浏览器为了能快速浏览网页,会在浏览后预留存储图片,外部css文件,这叫高速缓存。但浏览器缓存重复调用会导致网站设计出错,解决办法是让浏览器重新加载链接文件,Ctrl+F5或Ctrl+Shint+R。


内部样式表

  内部样式表是有多个样式组成,是网页代码的一部分。
  在<head>,<stype> 标签之间

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
h1{
color:#06C;
}
p {
color:#33F;
}
</style>
</head>

<body>
</body>
</html>

 

 

本文链接


    
最新技术文章:
▪css white-space:nowrap属性用法(可以强制文字不...
▪IE里button设置border:none属性无效解决方法
▪border:none与border:0使用区别
▪html清除浮动的6种方法示例
▪三个不常见的 HTML5 实用新特性简介
▪css代码优化的12个技巧
▪低版本IE正常运行HTML5+CSS3网站的3种解决方案
▪CSS Hack大全-教你如何区分出IE6-IE10、FireFox、Chr...
▪ie6,ie7,ie8完美支持position:fixed的终极解决方案
▪小技巧处理div内容溢出
▪html小技巧之td,div标签里内容不换行
▪纯CSS实现鼠标放上去改变文字内容
▪li中插入img图片间有空隙的解决方案
▪CSS3中Transition属性详解以及示例分享
▪父div高度不能自适应子div高度的解决方案
▪告别AJAX实现无刷新提交表单
▪从零学CSS系列之文本属性
▪HTML 标签
▪CSS3+Js实现响应式导航条
▪CSS3实例分享之多重背景的实现(Multiple background...
▪用css截取字符的几种方法详解(css排版隐藏溢...
▪页面遮罩层,并且阻止页面body滚动。bootstrap...
▪CSS可以做的几个令你叹为观止的实例分享
▪详细分析css float 属性以及position:absolute 的区...
▪IE6/IE7/IE8/IE9中tbody的innerHTML不能赋值的完美解...
▪CSS小例子(只显示下划线的文本框,像文字一...
▪可以给img元素设置背景图
▪不通过JavaScript实现的自动滚动视差效果
▪div+CSS 兼容小摘
▪CSS的inherit与auto使用分析
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3