|
@@ -22,4 +22,47 @@ export const getOwnerName = (musicSheetExtend: any, sourceType: string) => {
|
|
|
}
|
|
|
}
|
|
|
return ownerName;
|
|
|
+}
|
|
|
+
|
|
|
+export const copyText = (message: any, text: string) => {
|
|
|
+ // 数字没有 .length 不能执行selectText 需要转化成字符串
|
|
|
+ const textString = text.toString()
|
|
|
+ let input = document.querySelector('#copy-input') as HTMLInputElement
|
|
|
+ if (!input) {
|
|
|
+ input = document.createElement('input')
|
|
|
+ input.id = 'copy-input'
|
|
|
+ input.readOnly = true // 防止ios聚焦触发键盘事件
|
|
|
+ input.style.position = 'fixed'
|
|
|
+ input.style.left = '-1000px'
|
|
|
+ input.style.zIndex = '-1000'
|
|
|
+ // 为了处理,页面滑动到底部的问题
|
|
|
+ document.body.appendChild(input)
|
|
|
+ // document.querySelector('#input-copy-container')?.appendChild(input)
|
|
|
+ }
|
|
|
+
|
|
|
+ input.value = textString
|
|
|
+ // ios必须先选中文字且不支持 input.select();
|
|
|
+ selectText(input, 0, textString.length)
|
|
|
+ if (document.execCommand('copy')) {
|
|
|
+ document.execCommand('copy')
|
|
|
+ message.success('复制成功')
|
|
|
+ }
|
|
|
+ input.blur()
|
|
|
+
|
|
|
+ // input自带的select()方法在苹果端无法进行选择,所以需要自己去写一个类似的方法
|
|
|
+ // 选择文本。createTextRange(setSelectionRange)是input方法
|
|
|
+ function selectText(textbox: any, startIndex: any, stopIndex: any) {
|
|
|
+ if (textbox.createTextRange) {
|
|
|
+ //ie
|
|
|
+ const range = textbox.createTextRange()
|
|
|
+ range.collapse(true)
|
|
|
+ range.moveStart('character', startIndex) //起始光标
|
|
|
+ range.moveEnd('character', stopIndex - startIndex) //结束光标
|
|
|
+ range.select() //不兼容苹果
|
|
|
+ } else {
|
|
|
+ //firefox/chrome
|
|
|
+ textbox.setSelectionRange(startIndex, stopIndex)
|
|
|
+ textbox.focus()
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|