javascript 用于从剪贴板内容创建URL的书签小程序

q8l4jmvw  于 2023-01-11  发布在  Java
关注(0)|答案(2)|浏览(94)

我正在尝试创建一个Bookmarklet,以便从剪贴板中获取id值,并导航到使用该id构建的URL。

javascript:(function(){  
 window.location="index.php?module=Accounts&action=DetailView&record=" 
                 + clipboardData.getData('Text');
})()

(this只有在点击需要该URL表单的特定站点时才能正常工作)
Bookmarklet的基本功能运行良好,棘手的部分是获取Clipboard值,因为clipboardData不工作。
我正在使用Firefox v64(尽管我希望这在更多的浏览器中是通用的,至少是现代的)。
现在,在搜索这个问题时,我意识到我要做的事情并不像看起来那么简单-浏览器中的剪贴板API是一个棘手的问题。我找到了几个答案,最好的一个似乎是这样的:
JavaScript get clipboard data on paste event (Cross browser)
我也试过这个,但也不能让它工作:https://stackoverflow.com/a/27908501/1189711
我的问题是:这些技术是否适用于Bookmarklet?如果适用,我将非常感谢您的帮助。我的Javascript技能太低,无法理解如何将这些答案转换为我的情况-即异步的东西。
PS -如果有人想要一个地方来测试这个,只要把84f1bb99-7017-e8dc-94f9-5c179da9f102放在你的剪贴板上,在这个demo site上试试,凭证will/will

kdfy810k

kdfy810k1#

Clipboard copy无法从脚本运行。它必须来自用户操作。
同样的,你也不能从书签中调用全屏。
从Firefox控制台:

document.execCommand(‘cut’/‘copy’) was denied because it was not
called from inside a short running user-generated event handler.
5q4ezhmt

5q4ezhmt2#

我尝试了这个方法,效果很好:
相同窗口:

javascript:location.href='https://www.ricerca.com?search%27+escape(location.href)

新窗口:(作者:https://9to5answer.com/window-location-href-and-window-open-methods-in-javascript)window.open()

javascript:window.open("https://www.ricerca.com?search="+window.getSelection());

相关问题