美文网首页
BOM 简单封装BOM库

BOM 简单封装BOM库

作者: tazbingor | 来源:发表于2017-04-25 17:21 被阅读0次

紧接着上 博客《BOM 常用API》的内容,且为了熟悉和了解BOM的API,我们来做一个BOM的库
主要功能,能在屏幕中间打开指定 URL,能读取或设置 location.search等

1.打开一个新窗口

1.1需求

封装window.open,调整中心坐标

1.2具体实现

window.$ = function () {
    let array = [];
    return array;
}

$.bom = {

    //弹出居中窗口
    openAtCenter: function (width, height, url) {
        window.open(url, '_blank',
            `width=${width}px,
            height=${height}px,
            screenX=${screen.width / 2 - width / 2}px,
            screenY=${screen.height / 2 - height / 2}px`
        );
    }

}

2.修改查询参数

2.1需求

能输入一下代码进行查询

$.bomm.search('a');
$.bomm.search('a','xxx');

2.2具体实现

步骤:

  • 首先去除无用的字符串
  • 将获得得字符串再拆成对象,形成键值对已便操作
  • 检测url,防止url有汉字
  • 最后设置value
    //查询字符串
    search: function(name, value){
        let searchAll = function(){
            let result = {}
            let search = window.location.search
            // 去掉?
            if(search[0] === '?'){
                search = search.slice(1)
            }
            // 用 & 分隔成数组
            let searchArray = search.split('&')

            for(var i =0;i<searchArray.length; i++){
                //再次分割url
                let parts = searchArray[i].split('=')
                // URI 进行解码变成中文
                result[decodeURIComponent(parts[0])] = decodeURIComponent(parts[1] || '')
            }
            return result
        }
        let result = searchAll()

        if(value === undefined){
            return result[name]
        }else{
            if(result[name] === undefined){
                location.search += `&${encodeURIComponent(name)}=${encodeURIComponent(value)}`
            }else{
                result[name] = encodeURIComponent(value)
                let newSearch = '?'
                for(let key in result){
                    newSearch += `${encodeURIComponent(key)}=${encodeURIComponent(result[key])}&`
                }
                location.search = newSearch
            }
        }
    },

测试

预览:https://tazbingor.github.io/wheels/mybom/index.html
源码:https://github.com/tazbingor/wheels/blob/master/mybom/myBom.js

相关文章

  • BOM 简单封装BOM库

    紧接着上 博客《BOM 常用API》的内容,且为了熟悉和了解BOM的API,我们来做一个BOM的库主要功能,能在屏...

  • JavaScript的范围和组成

    javaScript的范围: BOM + DOM + ECMAScript BOM简单说明 BOM即Browser...

  • pg中的递归树查询

    业务需求 BOM表,组织架构都是典型的树结构,多以父子形式存在数据库表中。比如BOM展开,给定某个bom根,展开其...

  • 为产品定价的4种方式

    一、BOM定价 BOM即(Bill of Materials )物料清单,BOM定价指的是基于BOM价格的定价方式...

  • WINDOW对象说明

    首先Window是BOM中所有对象的核心,所以先理解BOM是什么吧 一、BOM 什么是BOM? 答:BOM是bro...

  • 图解BOM与DOM的区别与联系

    区别 BOM(Browser Object Model) BOM 即浏览器对象模型,BOM没有相关标准,BOM的最...

  • JavaScript的范围:BOM + DOM + ECMASc

    JavaScript的范围 BOM 简单说明 BOM即Browser Object Mode,浏览器对象模型。 B...

  • Bom bom bom

    今天周日,我去公司了,还好啦,至少把选择题看完了,背了一小时的书,一小时斗地主,哈哈哈!厉害吧!反正我自己满意了!...

  • 三分钟理解各型的BOM

    BOM是什么? 各种形式的BOM什么样,它们之间有什么关系? BOM是什么? BOM(Bill of Materi...

  • BOM对象

    BOM对象(浏览器对象模型) BOM简单来说就是提供独立于浏览器内容和浏览器窗口进行的交互对象,也就是说BOM负责...

网友评论

      本文标题:BOM 简单封装BOM库

      本文链接:https://www.haomeiwen.com/subject/jnemzttx.html