@乄杺,而我的目的就是保证虎绿林的所有用户名都能正常显示。我既然做出了放宽用户名字符范围的承诺,我就应该为用户名的正常显示负责。
字形维基有一个简单好用的造字程序,所以以后再有缺字问题我就可以自己造。
著作权与许可协议
任何人都可以自由使用在字形维基(GlyphWiki)提交的字形数据及文章内容。不论一切针对数据的改变或商业用途,任何人都可以自由地使用、复制甚至转载上述的一切数据和内容。本站不在标注数据、内容作者方面做出特定限制。此外,本站允许将本站的字形数据作为自创字体的基础数据,或是将复制后的字形数据作为出版物。所有在本站文章里引用的数据和内容不属于本站的版权范围,因此在引用此类数据和内容前请询问有关许可方。
因为我打包的这些字体是完全通过字形维基网站生成的,所以也遵循该协议。
@胡图图,你可以引用这个插件,然后看看放在开头和结尾的区别:
导入网页插件:模拟加载卡顿(当前用户:0,总安装次数:9)<script src="https://1.2.3.4/fail.js"></script>
放在开头:https://dev.hu60.cn/
放在结尾:https://hu60.cn/
@嚻,嗯,现在是在底部。你可以用JS往顶部插入内容:
<script> document.querySelector('body').insertAdjacentHTML('afterbegin', ` <h3>标题</h3> <div>测试</div> `); </script>
@无名啊,你喜欢用debian还是centos,我可以在韩国服务器上给你开一个docker容器让你运行任意web应用。
@无名啊,提供一下你的SSH公钥。
@无名啊,看过的图片就不会再想看了啊。
@无名啊,图片太高了,翻页手疼
@无名啊,我需求很大
@无名啊,嗯,我确实想,但这就要我侵入viewer.js预览控件,给它添加点击事件。
@无名啊,我和
viewer.js
还有另一兼容问题待解决:用户没点击过的图片无法正常预览,翻页只能看到红字svg。
@无名啊,所以,把
setTimeout
做为加载顺序控制器是非常简单且有效的方法。在所有人都遵守这一规则的情况下,函数第二参数的数值就是加载顺序。为了防止我默认的0占尽先机,我决定把自己的数值改成10,以便让出一些位置给想先加载的代码。
setTimeout
的单位是毫秒,50以内应该都不会引起用户察觉。
@无名啊,添加一点点延时就可以了,
setTimeout(() => {}, 1);
后续脚本继续增加延迟,就可以按顺序形成调用链。
Javascript是单线程的,所以只要延迟数值比我的数值(没给,默认为0)大,就会晚于我执行。
@无名啊,这不现实,我想你也看到了,在我的代码开始执行时,图片请求实际上已经发出了。如果我的代码晚于其他代码加载,浏览器就有更多机会下完整个图片。要想实现最好的效果,我的代码应该放在加载顺序的最开头,而这与
viewer.js
的要求显然是矛盾的。为了方便用户导入,我的代码不可能同时在插件列表的开头和结尾。
@无名啊,只要添加
setTimeout
,就可以在我的$(document).ready()
先执行的情况下,让我的绑定后执行。$(document).ready(() => { // 加这个延时,就可以保证晚于任何其他插件执行,以解决和viewer.js的冲突 setTimeout(() => { document.querySelectorAll('.userimg').forEach(x => { // 替换掉虎绿林的点击查看大图事件 x._onclick = x.onclick; x.onclick = function () { this.src = this._url; // 再次点击就触发虎绿林的点击查看大图事件 x.onclick = x._onclick; // 恢复被抑制的图片外层链接 if (x.parentNode._href) { // 为了防止外层链接被立即触发,所以加个延时 setTimeout(() => x.parentNode.href = x.parentNode._href); } }; }); }); });
@无名啊,我的更新已经发布了,你可以看我的代码。
@无名啊,这就是我一直在说的方案,并且我已经做好了。
我确实想到一个解决方法,就是用
setTimeout
推迟onclick
事件的绑定。
唯一的解决方法是在一切尘埃落定后重新绑定事件。多个
$(document).ready()
的执行顺序是未知的,但是在$(document).ready()
中使用setTimeout
,那么就一定会晚于对方执行,即使延迟是0。
@无名啊,因为我的代码不在事件监听器和
defer
内,我的代码是同步js
文件中的立即执行表达式,总是最先执行,所以不必关心执行顺序了。唯一的解决方法是在一切尘埃落定后重新绑定事件。
@无名啊,因为最开始网页插件在顶部,加载很卡。