MCPcopy
hub / github.com/ChinaGodMan/UserScripts / handleLinkClick

Function handleLinkClick

greasyfork-link/greasyfork-link.user.js:295–398  ·  view source on GitHub ↗
(linkText)

Source from the content-addressed store, hash-verified

293 })
294
295 function handleLinkClick(linkText) {
296 if (linkBehavior === 0) {
297 const bodyBackgroundColor = window.getComputedStyle(document.body).backgroundColor
298 const dialogBox = document.createElement('div')
299 dialogBox.style.position = 'fixed'
300 dialogBox.style.top = '50%'
301 dialogBox.style.left = '50%'
302 dialogBox.style.transform = 'translate(-50%, -50%)'
303 dialogBox.style.background = bodyBackgroundColor
304 dialogBox.style.padding = '20px'
305 dialogBox.style.boxShadow = '0 4px 6px rgba(0, 0, 0, 0.1)'
306 dialogBox.style.borderRadius = '8px'
307 dialogBox.style.zIndex = '9999'
308 dialogBox.innerHTML = `
309 <span id="closeBtn" style="position: absolute; top: 10px; right: 10px; color: red; cursor: pointer; font-size: 30px;">&times;</span>
310 <p style="font-weight: bold; font-size: 20px;"> <span id="linkTextSpan" style="color: red;">${linkText}</span> 操作</p>
311 <button id="forumSearchBtn">论坛搜索</button>
312 <button id="openUrlBtn">打开网址</button>
313 <button id="copyLinkBtn">复制链接</button>
314 `
315 document.body.appendChild(dialogBox)
316
317 let dialogInitialX, dialogInitialY, initialX, initialY
318 dialogBox.addEventListener('mousedown', onMouseDown)
319 dialogBox.addEventListener('touchstart', onTouchStart)
320
321 function onMouseDown(event) {
322 dialogInitialX = dialogBox.offsetLeft
323 dialogInitialY = dialogBox.offsetTop
324 initialX = event.clientX
325 initialY = event.clientY
326 document.addEventListener('mousemove', onMouseMove)
327 document.addEventListener('mouseup', onMouseUp)
328 }
329
330 function onTouchStart(event) {
331 dialogInitialX = dialogBox.offsetLeft
332 dialogInitialY = dialogBox.offsetTop
333 initialX = event.touches[0].clientX
334 initialY = event.touches[0].clientY
335 document.addEventListener('touchmove', onTouchMove)
336 document.addEventListener('touchend', onTouchEnd)
337 }
338
339 function onMouseMove(event) {
340 const deltaX = event.clientX - initialX
341 const deltaY = event.clientY - initialY
342 dialogBox.style.left = dialogInitialX + deltaX + 'px'
343 dialogBox.style.top = dialogInitialY + deltaY + 'px'
344 }
345
346 function onTouchMove(event) {
347 const deltaX = event.touches[0].clientX - initialX
348 const deltaY = event.touches[0].clientY - initialY
349 dialogBox.style.left = dialogInitialX + deltaX + 'px'
350 dialogBox.style.top = dialogInitialY + deltaY + 'px'
351 }
352

Callers 1

Calls 2

ToastFunction · 0.70
navigateToFunction · 0.70

Tested by

no test coverage detected