依赖jquery的后果

来源:互联网 发布:rime for mac 编辑:程序博客网 时间:2024/04/29 16:13

前几天有一个需求,大概是在一个页面嵌套一些代码后,执行提交表单功能到另一个项目中,看似很简单 实际里面的东西也还是不少的,用习惯了jquery,导致原始的js用的不是很习惯,下面就说一下:(由于要考虑到每个页面可能js冲突 所以只能自己写方法)

      1、ajax 跨域请求问题 ,由于是夸域名请求提交,所以ajax是不支持的,只能在同域下进行交互,至少ie是不行的,firefox只是抛出错误,上网看了看,采用的解决办法是:

     

                var head = document.getElementsByTagName("head")[0];       var js = document.createElement("script");       js.src = "http://www.baidu.com?search=myworkroom.org";       js.onload = js.onreadystatechange = function(){       if (!this.readyState || this.readyState == "loaded" || this.readyState == "complete"){   head.removeChild(js);   }       }       head.appendChild(js);

这是在网上找的,意思是在页面<head></head>里动态插入<script>标签而里面的src属性就是要提交的信息

      2、查找元素

              由于习惯了用,所以已经不太习惯自己写了,比如要给一个页面的所有提交<a>进行绑定事件

        var addListener=window.addEventListener?function(obj,type,fn){obj.addEventListener(type,fn,false);}:function(obj,type,fn){obj.attachEvent('on'+type,fn);};
               就要自己去写 判断浏览器;

             比如查找元素$("#div").find("input[id=name]")来获取对象,可是在js中要用递归才能取出来,比如

       function findElement(parentObj,type,id){//parentObj 要超找子元素的最上级对象 div,标记名字 input,id值for(var i=0;i<parentObj.childNodes.length;i++){var el = parentObj.childNodes[i];if(el.tagName==type.toUpperCase()){if(el.id==id){return el;}else{continue;}}else{var result = findElement(el,type,id);if(result!=null){return result;}}}return null;}
          当然,上面可以进一步进行完善 比如像jquery id可变为随意的属性比如class、title等,可以变为一个参数,自己去进行解析等等


          以上就说2点吧 ,还有一些逻辑、判断、提示等,只是提到备忘用处,有不正确或不佳的地方还请多多赐教~

原创粉丝点击