attachEvent的使用方法与传递参数[IE|firefox]

比较好的解决办法可以用作用域,比较下下面的变量str在作用域内和作用域外的值


代码如下:

<input id="button1" type="button" value="按我" /> 
<script language="javascript"> 
window.onload=function(){ 
    var obj=document.getElementById("button1"); 
    (function(){ 
        var str="看到我了吧"; 
        var func=function(){ 
            alert(str); 
        } 
        if (document.all) 
            obj.attachEvent("onclick",func); 
        else 
            obj.addEventListener("click",func,false); 
    })(); 
    alert(typeof(str)); 

</script>

效果2

window.onload=function(){
var obj=document.getElementById("button1");
(function(){
var func=function(str){
alert(str);
}
if (document.all)
obj.attachEvent("onclick",function(){func("看到我了吧");});
else
obj.addEventListener("click",function(){func("看到我了吧");},false);
})();
}

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

楼上若不比较作用域范围内外的值,是否可以简化为:

var obj=document.getElementById("button1");
var func=function(str)
{
alert(str);
}
if (document.all)
obj.attachEvent("onclick",function(){func("看到我了吧");});
else
obj.addEventListener("click",function(){func("看到我了吧");},false);

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

(0)

相关推荐

  • 解决使用attachEvent函数时,this指向被绑定的元素的问题的方法

    使用attachEvent对同一事件进行多次绑定,这是解决事件函数定义冲突的重要方法.但是在IE中,函数内的this指针并没有指向被绑定元素,而是function对象,在应用中,这是很难受的一件事,如果试图用局部变量传送元素,会因为闭包而引起内存泄漏.那么,我们应该如何解决这一难题呢? 我给Function添加了原型方法"bindNode",在这个方法里,根据传送过来的元素,进行全局性存储转换,然后返回经过封装的函数,使用call方法来进行属主转换. <html> <

  • JavaScript通过attachEvent和detachEvent方法处理带参数的函数

    无标题文档 var theP; //P标签对象 var show=function(msg){ //直接定义 function show(msg) 效果是一样的 return function(){ alert(msg+" from show()"); if(window.addEventListener){ //FF etc. theP.removeEventListener("click", theP.show11, false); } else{ //IE t

  • javascript attachEvent和addEventListener使用方法

    attachEvent方法 按钮onclick addEventListener方法 按钮click 两者使用的原理:可对执行的优先级不一样,下面实例讲解如下: attachEvent方法,为某一事件附加其它的处理事件.(不支持Mozilla系列) addEventListener方法 用于 Mozilla系列 举例: Java代码 复制代码 代码如下: document.getElementById("btn").onclick = method1; document.getElem

  • JS在IE和FF下attachEvent,addEventListener学习笔记

    对象名.addEventListener("事件名(不带ON)",函数名,true/false);(FF下) 对象名.attachEvent("事件名",函数名);(IE下) 说明: 事件名称,要注意的是"onclick"要改为"click","onblur"要改为"blur",也就是说事件名不要带"on". 函数名,记住不要跟括号最后一个参数是个布尔值,表示该事件的

  • Javascript 的addEventListener()及attachEvent()区别分析

    Mozilla中: addEventListener的使用方式: target.addEventListener(type, listener, useCapture); target: 文档节点.document.window 或 XMLHttpRequest. type: 字符串,事件名称,不含"on",比如"click"."mouseover"."keydown"等. listener :实现了 EventListene

  • attachEvent的使用方法与传递参数[IE|firefox]

    比较好的解决办法可以用作用域,比较下下面的变量str在作用域内和作用域外的值 复制代码 代码如下: <input id="button1" type="button" value="按我" />  <script language="javascript">  window.onload=function(){      var obj=document.getElementById("but

  • thinkPHP中U方法加密传递参数功能示例

    本文实例讲述了thinkPHP中U方法加密传递参数功能.分享给大家供大家参考,具体如下: thinkPHP中的U方法用于对URL地址进行组装.可自动根据当前的URL模式和设置生成对应的URL地址.基本使用可参考 //www.jb51.net/article/51057.htm 具体代码如下: <?php /** * 简单对称加密算法之加密 * @param String $string 需要加密的字串 * @param String $skey 加密EKY */ function encode(

  • jquery引用方法时传递参数原理分析

    经常到网上去下载大牛们写的js插件.每次只需将js引用并设置下变量就行了,但一直没搞明白原理(主要是大牛们的代码太简练了-,-). 这次弄清了如何传递.设置多个(很多个)参数. 如 方法为function lunbo(){}; 在调用.设置的时候写: lunbo({ speed:200, wrapper:'#id', ease:'easing' }) 则,在方法内获取的时候: function lunbo(options){ var set=$.extend({},options); var _

  • C#传递参数到线程的方法汇总

    本文汇总整理了传递参数到线程的方法供大家参考,非常实用,具体内容如下: 首先我们要知道什么是线程,什么时候要用到线程,如何去使用线程,如何更好的利用线程来完成工作. 线程是程序可执行片段的最小单元,是组成运行时程序的基本单元,一个进程有至少一个线程组成.一般在并行处理等待事件的时候要用到线程,如等待网络响应,等待I/O通讯,后台事务处理等情况.使用线程其实很简单,在.net框架下面你首先要定义一个函数来完成一些工作,然后实例化一个线程对象Thread thrd = new Thread(new

  • JQuery中如何传递参数如click(),change()等具体实现

    因为要做这样一个作业,就是两个select中option相互转换,图如下: 这个作业就是给几个按钮添加click()事件,一般的用法是这样的: 复制代码 代码如下: $("#but_one").click(function(){ $("#select1 option:selected").appendTo($("#select2")); }); 然后我查找了官方文档,对click的说明是这样的,后来我还是没有百度到答案, 我考虑到代码的重用性,想

  • Angularjs中$http以post请求通过消息体传递参数的实现方法

    本文实例讲述了Angularjs中$http以post请求通过消息体传递参数的方法.分享给大家供大家参考,具体如下: Angularjs中,$http以post在消息体中传递参数,需要做以下修改,以确保消息体传递参数的正确性. 一.在声明应用的时候进行设置: var httpPost = function($httpProvider) { /******************************************* 说明:$http的post提交时,纠正消息体 ***********

  • AngularJS入门教程二:在路由中传递参数的方法分析

    本文实例讲述了AngularJS在路由中传递参数的方法.分享给大家供大家参考,具体如下: 我们不仅可以在控制器中直接定义属性的值,比如: app.controller('listController',function($scope){ $scope.name="ROSE"; }); AngularJS还提供了传递参数的功能,目前我接触到的一种方式是从视图中传参: <!--首页html--> <li><a href="#/user/18"

  • Spring Mvc中传递参数方法之url/requestMapping详解

    前言 相信大家在使用spring的项目中,前台传递参数到后台是经常遇到的事, 我们必须熟练掌握一些常用的参数传递方式和注解的使用,本文将给大家介绍关于Spring Mvc中传递参数方法之url/requestMapping的相关内容,分享出来供大家参考学习,话不多说,直接上正文. 方法如下 1. @requestMapping: 类级别和方法级别的注解, 指明前后台解析的路径. 有value属性(一个参数时默认)指定url路径解析,method属性指定提交方式(默认为get提交) @Reques

  • url 特殊字符 传递参数解决方法

    十六进制值 1. + URL 中+号表示空格 %2B 2. 空格 URL中的空格可以用+号或者编码 %20 3. / 分隔目录和子目录 %2F 4. ? 分隔实际的 URL 和参数 %3F 5. % 指定特殊字符 %25 6. # 表示书签 %23 7. & URL 中指定的参数间的分隔符 %26 8. = URL 中指定参数的值 %3D 解决的方法:replace() 方法如果直接用str.replace("-","!") 只会替换第一个匹配的字符.而st

随机推荐