javascript 如何创建一个JS小书签在光标位置插入固定文本?

p8h8hvxi  于 2023-02-18  发布在  Java
关注(0)|答案(2)|浏览(108)

我想创建一个可以放到浏览器书签工具栏上的bookmarklet,当单击它时,会插入一个固定的预定义文本(在我的用例中,是耸耸肩:¶_()_/¶)(假设光标位于可编辑的输入域或文本区域)。然而,我是JavaScript的初学者,不知道如何开始这样做。有帮助吗?如果我能得到一个指向正确方向的指针,我可能会从那里弄明白。谢谢!

iugsix8n

iugsix8n1#

抱歉耽搁了;就在我发布这个问题的时候,生活向我扔了几个曲线球,我忘记了这一点,直到今晚StackOverflow通知我回复。

afuous的评论给了我想要的一切,现在我有了一个可以使用的书签。对于其他遇到这个的人,这里是:

javascript:(function(a){a.value=a.value.slice(0,a.selectionStart)+"%C2%AF\\_(%E3%83%84)_/%C2%AF"+a.value.slice(a.selectionEnd);})(document.activeElement);
或者,作为尚未转换为bookmarklet形式的JavaScript:

(function (a) {
  a.value =
    a.value.slice(0, a.selectionStart) +
    "¯\\_(ツ)_/¯" +
    a.value.slice(a.selectionEnd);
})(document.activeElement);

这样做的好处是允许我选择文本的一部分,然后使用bookmarklet将选择替换为shuggie,就好像我在键盘上按了一个假设的shuggie键一样。
你可以随意窃取和修改。这只在Firefox50.0.2中测试过,但我认为它应该可以在所有现代浏览器中使用。(它在InternetExplorer 8或更早版本中不起作用。)

zrfyljdw

zrfyljdw2#

CSS技巧有一篇文章解释了如何做到这一点和更多。我很清楚,只有链接的答案是不太理想的,但问题是要求在正确的方向指针,所以我相信这是一个很好的适合。
本教程中的bookmarklet会预填充表单,所以基本上你会想要彻底改变它,但首先要看看它是如何查找表单控件并预填充它们的,然后调整以适应你想要的功能,最后去掉你不需要或不使用的所有东西。
Prefilling Forms Custom Bookmarklet

相关问题