求助好心的大佬,这个划词搜索的脚本怎么添加点击图标后、鼠标滚动后、超时后自动关闭弹窗的代码呀

2020-04-15 05:36:15 +08:00
 soooulp

发现好几个代码都是在 translate 那个脚本代码基础上改的,就是没有点击图标后、鼠标滚动后、超时后自动关闭弹窗,瞎研究了一晚上也没整出来,大佬们求救

链接:

浏览器搜索扩展工具

1055 次点击
所在节点    问与答
2 条回复
Yourshell
2020-04-15 08:37:30 +08:00
从原脚本第二百行开始,话说老哥你这个 2012 年的号不会这个就你们离谱。

```
// 鼠标事件
document.addEventListener('mouseup', function (e) {
if (e.target == icon || (e.target.parentNode && e.target.parentNode == icon)) {
e.preventDefault();
return;
}
var text = window.getSelection().toString().trim();
if (text && icon.style.display == 'none') {
icon.style.top = e.pageY +40 + 'px';
if(e.pageX -70<10)
icon.style.left='10px';
else
icon.style.left = e.pageX -70 + 'px';
icon.style.display = 'block';
// 这里
window.setTimeout(function(){icon.style.display='none'}, 5000)
} else if (!text) {
icon.style.display = 'none';
}
});

// 这里
document.addEventListener('scroll', function(e){
icon.style.display='none';
});

/**触发事件*/
function tiggerEvent(el, type) {
if ('createEvent' in document) {// modern browsers, IE9+
var e = document.createEvent('HTMLEvents');
e.initEvent(type, false, true);// event.initEvent(type, bubbles, cancelable);
el.dispatchEvent(e);
} else {// IE 8
e = document.createEventObject();
e.eventType = type;
el.fireEvent('on' + e.eventType, e);
}
}

/**在新标签页中打开*/
function open(url) {
// 这里
icon.style.display='none';
var win;
win = window.open(url);

if (window.focus) {
win.focus();
}
return win;
}
```
soooulp
2020-04-15 10:33:40 +08:00
@Yourshell 给大佬递烟,太太太感谢啦,12 年毕业就没写代码了,现在 Javascript 一脸懵,再慢慢开始研究

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/662494

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX