简化你的工作,7 种常用的 JS 代码片段

日常开发中,我们经常会用到很多通用的 JS 代码,比如:复制内容、从 URL 中获取指定参数 等

这些代码通常有固定实现,即:代码片段。

所以,为了方便大家的开发,今天咱们就来看看常用的 7 种代码片段

01:将内容复制到剪贴板

通过按钮,将指定 dom 中的内容复制到用户的剪贴板

const copyToClipboard = (content) => {
  const textarea = document.createElement("textarea")
  
  textarea.value = content
  document.body.appendChild(textarea)
  textarea.select()
  document.execCommand("Copy")
  textarea.remove()
}

02:使用URLSearchParams获取URL的搜索参数

这应该是一个非常常见的操作,之前经常会使用 正则来完成,现在有了更简单的方式:

const getQueryByName = (name) => {
  const query = new URLSearchParams(location.search)
  return decodeURIComponent(query.get(name))
}
// url: https://sunday.com/?name=fatfish&age=100
const name = getQueryByName('name') // fatfish
const age = getQueryByName('age') // 100
const gender = getQueryByName('gender') // null

03:平滑滚动至页面顶部

const scrollToTop = () => {
  const c = document.documentElement.scrollTop || document.body.scrollTop
  
  if (c > 0) {
    window.requestAnimationFrame(scrollToTop)
    window.scrollTo(0, c - c / 8)
  }
}

04:获取当前页面滚动距离

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

getScrollPosition() // { x: 0, y: 215 }

05:判断当前设备是Andoird还是iOS

function getOSType() {
  let u = navigator.userAgent,
    app = navigator.appVersion
  let isAndroid = u.indexOf("Android") > -1 || u.indexOf("Linux") > -1
  let isIOS = !!u.match(/\(i[^]+( U)? CPU.+Mac OS X/)
  
  if (isIOS) {
    return 0
  } else if (isAndroid) {
    return 1
  } else {
    return 2
  }
}

getOSType() // 0

06:格式化货币

const formatMoney = (money) => {
  return money.toLocaleString()
}

formatMoney(123456789) // '123,456,789'
formatMoney(123456789.123) // '123,456,789.123'
formatMoney(123) // '123'

07:进入和退出全屏

// 进入全屏
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}")
    }
  }
}
// 退出全屏
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}")
    }
  }
}

原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/88370.html

(0)
guozi's avatarguozi
上一篇 2024年6月3日 下午5:15
下一篇 2024年6月3日 下午5:17

相关推荐

  • 又被墙了,如何使用被墙的软件

    互联网行业虽然发展迅速,但也面临着被封杀的现象。当我们碰壁时,我们应该如何应对?这不仅是一个技术问题,更是一个心态问题。到底是什么创造了这堵墙?如何有效规避墙壁的限制?如何避免被墙…

    行业资讯 2024年5月6日
    0
  • 天津seo渠道代理,天津seo关键字推广

    天津SEO优化是一个大家经常听到的术语,但是你真的了解它吗?它到底是什么?为什么如此重要?如何优化?如果您还有疑问,请跟随我的步骤,和我一起探索这个领域的奥秘。让我们一起来解开天津…

    行业资讯 2024年4月18日
    0
  • 域名被墙原因查询,被墙的域名怎么做301跳转

    6、联系相关部门:如果以上方法都无法解决屏蔽问题,您可以联系相关部门进行投诉。例如,在中国大陆被屏蔽的域名可以通过联系中国国家互联网信息办公室提出质疑。 希望通过以上的介绍,读者能…

    行业资讯 2024年5月13日
    0
  • 海口哪家公司可以做网站?

    你是否正在寻找一家可以为你建设网站的公司?那么,海口是一个不错的选择。作为海南岛的省会城市,海口拥有着独特的地理位置和发展优势,吸引了众多企业和个人前来投资。随着信息化时代的到来,…

    行业资讯 2024年4月1日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注