成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

前端開發必備:七個高效 JavaScript 工具函數及實現原理

開發 前端
為了方便大家日常開發,防止忘記具體的代碼實現,今天我們就來看看這七種常用代碼片段。

日常開發中,我們經常會用到很多通用的 JS 代碼,例如 復制內容、從 URL 中獲取指定參數 等,這些代碼基本都可以封裝成公共函數,用于不同的地方調用。

為了方便大家日常開發,防止忘記具體的代碼實現,今天我們就來看看這七種常用代碼片段。

1. 將內容復制到剪貼板

原理是模擬鼠標點擊【input】,執行復制【input】中的內容,這種方式,兼容性極差。在開發APP嵌套網頁時就發現APP端可能會禁用此類行為,導致復制失敗。個人測試過發現IOS端基本不行,完整代碼如下:

input框也可以用textarea來代替

//參數為文本內容
function copy_content(text){
    //創建一個輸入框
    var transfer = document.createElement('input');
    // 防止頁面出現閃動的現象將輸入框高度設置為0
    transfer.style.height = 0;
    //將輸入框插入到頁面的一個div元素中
    document.body.appendChild(transfer)
    //給輸入框復制
    transfer.value = text;
    //讓輸入框獲得焦點
    transfer.focus();
    transfer.contentEditable = true;
    //設置輸入框為只讀狀態
    transfer.readOnly = false;
    //模擬點擊復制
    if(transfer.setSelectionRange) {
        transfer.setSelectionRange(0,transfer.value.length);
        var range = document.createRange();
        range.selectNodeContents(transfer);
    }else{
        transfer.select();
    }
    document.execCommand('copy',false,null);
    //讓輸入框失去焦點
    transfer.blur();
    //刪除輸入框元素
    transfer.remove()
    console.log('復制成功')
}

2. 解析URL獲取參數

在js中獲取url參數的方式有很多,在之前的文章【解析url獲取相關信息】中使用new URL對象解析url,今天我們結合new URLSearchParams對象來解析url并獲取指定參數內容,具體代碼如下:

function getQueryByName(url,name) {
    //解析url獲取參數部分內容
    let urlObj = new URL(url)
    //解析參數部分內容
    let query = new URLSearchParams(url.search)
    //獲取某個參數的內容并decode解碼
    return decodeURIComponent(query.get(name));
}

3. 平滑滾動至頁面頂部

function scrollToTop() {
    const c = document.documentElement.scrollTop || document.body.scrollTop


    if (c > 0) {
        window.requestAnimationFrame(scrollToTop)
        window.scrollTo(0, c - c / 8)
    }
}

4. 獲取當前頁面滾動距離

function getScrollPosition(el = window) {
    return {
        x: el.pageXOffset !== undefined ? el.pageXOffset : el.scrollLeft,
        y: el.pageYOffset !== undefined ? el.pageYOffset : el.scrollTop,
    }
}

5. 判斷當前設備是Andoird還是iOS

在這里我們使用userAgent來判斷當前設備是安卓還是IOS

function getOSType() {
    let u = navigator.userAgent;
    let isAndroid = u.indexOf("Android") > -1 || u.indexOf("Linux") > -1;
    let isIOS = !!u.match(/\(i[^]+( U)? CPU.+Mac OS X/);


    if (isIOS) {
        return 0
    }
    if (isAndroid) {
        return 1
    }
    return 2
}

6. 格式化貨幣

格式化貨幣是將一個金額轉換成具有逗號表現的格式。例如:123456789 轉換后:123,456,789

function formatMoney(money){
    return money.toLocaleString()
}

7. 進入和退出全屏

(1) 進入全屏

function fullScreen() {
    let el = document.documentElement
    let rfs = el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen || el.msRequestFullScreen
    //typeof rfs != "undefined" && rfs
    if (rfs) {
        rfs.call(el)
    } else if (typeof window.ActiveXObject !== "undefined") {
        let wscript = new ActiveXObject("WScript.Shell")
        if (wscript != null) {
        wscript.SendKeys("{F11}")
        }
    }
}

(2) 推出全屏

function exitScreen() {
    let el = document
    let cfs = el.cancelFullScreen || el.webkitCancelFullScreen || el.mozCancelFullScreen || el.exitFullScreen
    //typeof cfs != "undefined" && cfs
    if (cfs) {
        cfs.call(el)
    } else if (typeof window.ActiveXObject !== "undefined") {
        let wscript = new ActiveXObject("WScript.Shell")
        if (wscript != null) {
        wscript.SendKeys("{F11}")
        }
    }
}
責任編輯:趙寧寧 來源: 編程經驗共享
相關推薦

2023-01-10 14:54:19

2021-09-03 10:08:53

JavaScript開發 代碼

2024-11-06 14:26:40

2025-05-20 08:52:12

前端React開發

2024-01-02 18:03:42

編程語言Python

2022-05-23 11:13:02

Python工具

2025-01-09 12:00:00

JavaScript前端數組

2022-04-14 10:40:11

領導者IT團隊遠程團隊

2009-02-16 16:49:53

DBA經驗

2010-09-01 09:39:07

CSS

2022-07-13 08:53:12

開源元宇宙

2023-09-07 16:28:46

JavaScrip

2024-01-31 12:13:02

JavaScriptSet元素

2025-03-21 08:20:00

數據清洗Python編程

2022-09-20 12:59:36

JavaScript函數

2023-11-09 15:06:13

微服務開發工具

2021-04-08 10:40:24

前端工具代碼

2020-03-23 10:59:52

CISO網絡安全漏洞

2021-10-18 13:26:15

大數據數據分析技術

2022-01-21 19:00:44

前端JS框架
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜资源| 亚洲九九 | 日韩欧美三区 | 亚洲精品久久久久中文字幕欢迎你 | 久久精品91久久久久久再现 | 国内精品久久久久久久影视简单 | 日本在线一二 | 欧美日韩亚洲在线 | 国产精品美女久久久久久久网站 | 免费爱爱视频 | 精品久久久久久久久久久久久久久久久 | 日日天天 | 高清黄色网址 | 一区二区视频免费观看 | 久久网站免费视频 | 欧洲色综合 | va在线 | 亚洲欧洲精品成人久久奇米网 | 免费不卡视频 | 天天干狠狠操 | 欧美精品一区二区三区蜜桃视频 | 国产精品日韩欧美一区二区 | 一区二区三区四区不卡视频 | 日本精品久久久一区二区三区 | 国产伦精品一区二区三毛 | 国产精品久久久久久久久免费樱桃 | 日韩精品在线一区 | 午夜在线小视频 | 日韩欧美国产精品综合嫩v 一区中文字幕 | 欧美一区二区三区在线播放 | 免费看av大片 | 亚洲精品久久区二区三区蜜桃臀 | 毛片免费观看视频 | 免费成人毛片 | 欧美日韩综合一区 | 国产成人精品久久二区二区91 | 在线免费观看黄色av | 国产成在线观看免费视频 | 久久久久久亚洲国产精品 | 久久久久国产精品人 | 国产精品毛片一区二区三区 |