zoukankan      html  css  js  c++  java
  • javascript你可能不知道的事

      此文要跟大家分享的是在项目开发中积累的js问题解决方案和经验,文章标题javascript你可能不知道的事只是个噱头或者说是我感觉这些经验对那些大牛(或经验比较丰富的人)可能只能算得上比较基础的东西了,但这并不妨碍我写这篇博客——我想对其它不知道这些经验技巧或曾被这些问题困扰过的程序员,应该还是会有一定帮助的,哪怕只有一点点儿,也是让我比较宽慰和高兴的事。所以,无论你愿不愿意看,我都将这些经验分享给你,^_^。

      1.如果应该或本来正常显示的页面中的弹出层等,出现某些样式加载不上的情况(如:jquery-ui弹出层的样式加载不上),可能原因是:页面中存在重复的js文件引用

      2.在iframe中改变父窗体的url代码实现:window.top.location = http://www.huohu123.com/?src=qd;

      3.新窗口打开页面的另一种方法:

     1 <a class="d" title="<%#Eval("ZPName")%>" onclick="javascript:return;" href="ajax/CommonProcess.ashx?method=searchOtherArticle&id=<%#Eval("ZPID")%>&type=<%#Eval("ZPType")%>"
    2 target="_blank">
    3 <div>
    4 <img onclick="FarwardToZpViewPage(this)" src='<%#BLL.Util.GetZuopinThumbImage(Eval("ZPDefaultImg").ToString())%>'
    5 alt="" /></div>
    6 </a>
    7 <script type="text/javascript">
    8 function FarwardToZpViewPage(obj) {
    9 if (document.all) {
    10 // For IE
    11 obj.parentNode.parentNode.click();
    12 }
    13 }
    14 </script>

      4.页面中的window.onload事件只会执行一次,如下:

        <script type="text/javascript">

            window.onload = function () {

                alert(new Date().getTime());

            };

            window.onload = function () {

                alert("ddfdfdfdfdf"); //——只会 弹出此提示

            };

          </script>

          原因分析如下:window事件——可以理解为一个事件对象(集合),其底层代码大概实现:var winEventObj={};  winEventObj.onload= functionA;winEventObj.onload= functionB; 这段代码就很清晰了:最终 winEventObj.onload的值 肯定为:functionB。

      

         5.js中对象是按引用传递的,如下:

           function test123() {
                var obj = new Object();
                obj.Num = 123;
                T1(obj);
                alert(obj.isValid);//---输出 true
            }

            function T1(obj) {
                obj.isValid = true;   
            }

      6.jQuery和DOM对象的区别,如下代码

      Test_Set和Test_Set2方法分别是在id为webTitle的标签的jQuery和DOM对象上设置(添加)一个showNo的属性,但不同的是,在jQuery对象上设置后再通过标签对象输出showNo的属性值却是'undefined',其原因,我的分析理解是:DOM对象(在内存中)存在真正的引用,而jQuery对象是其DOM对象的一个封装对象,并没有真实的引用存在

           function Test_Set() {
    var obj = $("#webTitle")[0];
    alert(obj);
    obj.showNo = 121212;
    alert(obj.showNo);
    alert($("#webTitle")[0].showNo); //输出:121212
    }

    function Test_Set2() {
    var obj = $("#webTitle");
    obj.showNo = 121212;
    alert(obj.showNo);
    alert($("#webTitle").showNo); //输出:undefined
    }

      7.&&(与运算符)的另外一种用法——让代码更简洁点儿,其用法具体可参见上一篇文章(改进版)jQuery表单验证插件formValidator的插件里,示例如下:         

      !_jQuery_formValidator_validJqObj_Array && (_jQuery_formValidator_validJqObj_Array = new Array());

          上面这行代码的最原始的写法是:

      if (_jQuery_formValidator_validJqObj_Array == null) {
                _jQuery_formValidator_validJqObj_Array = new Array();
         } 

      这样意思就很明确了。这种用法比较特殊,类似于C#中如下代码

            private PreferentialRuleDiscountRepository _repository = null;

    private PreferentialRuleDiscountRepository Repository
    {
    get
    {
    return _repository ?? (_repository = new PreferentialRuleDiscountRepository());
    }
    }

      即如果&&左边的条件成立为true,则执行右边的代码。

      

      好了,目前能跟大家分享的就是上面这几点经验,再基础的都不能再写了,恐怕这些让人看了都很想拍砖了,呵呵... 

  • 相关阅读:
    2017-2018-1 20155304 20155332 实验二 固件程序设计
    《信息安全技术》实验二 口令破解
    2017-2018-1 20155304 《信息安全系统设计基础》第六周学习总结
    2017-2018-1 20155304 20155310 20155337 实验一 开发环境的熟悉
    2017-2018-1 20155304 《信息安全系统设计基础》第五周学习总结
    第五周 加分题-mybash的实现
    2017-2018-1 20155304 《信息安全系统设计基础》第四周学习总结
    2017-2018-1 20155304 《信息安全系统设计基础》第三周学习总结
    课下作业2
    课下作业1
  • 原文地址:https://www.cnblogs.com/know/p/2337217.html
Copyright © 2011-2022 走看看