我正在尝试创建一个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
。
2条答案
按热度按时间kdfy810k1#
Clipboard copy无法从脚本运行。它必须来自用户操作。
同样的,你也不能从书签中调用全屏。
从Firefox控制台:
5q4ezhmt2#
我尝试了这个方法,效果很好:
相同窗口:
新窗口:(作者:https://9to5answer.com/window-location-href-and-window-open-methods-in-javascript)window.open()