You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.3 KiB
51 lines
1.3 KiB
|
|
// #ifdef H5
|
|
uni.setClipboardData = function setClipboardData({
|
|
data,
|
|
success,
|
|
fail,
|
|
complete
|
|
} = {}) {
|
|
try {
|
|
const x = window.scrollX
|
|
const y = window.scrollY
|
|
const input = document.createElement('input')
|
|
input.setAttribute('readonly', 'readonly')
|
|
input.setAttribute('value', data)
|
|
input.style.position = 'absolute'
|
|
input.style.width = '100px'
|
|
input.style.left = '-10000px'
|
|
document.body.appendChild(input)
|
|
input.focus()
|
|
window.scrollTo(x, y)
|
|
input.setSelectionRange(0, input.value.length)
|
|
document.execCommand('copy')
|
|
document.body.removeChild(input)
|
|
setTimeout(() => {
|
|
const res = {
|
|
errMsg: 'setClipboardData:ok',
|
|
data
|
|
}
|
|
success && success(res)
|
|
complete && complete(res)
|
|
})
|
|
} catch (e) {
|
|
setTimeout(() => {
|
|
const res = {
|
|
errMsg: 'setClipboardData:fail'
|
|
}
|
|
fail && fail(res)
|
|
complete && complete(res)
|
|
})
|
|
}
|
|
}
|
|
// #endif
|
|
|
|
// JS对象深度合并
|
|
function setClipboardData(obj = {}) {
|
|
uni.setClipboardData({
|
|
...obj
|
|
});
|
|
}
|
|
|
|
export default setClipboardData;
|