我正在尝试使Bookmarklet从剪贴板中获取id
值,并导航到使用该id
构建的URL。
javascript:(function(){
window.location="index.php?module=Accounts&action=DetailView&record="
+ clipboardData.getData('Text');
})()
(这只适用于点击期望该URL表单的特定网站时)
Bookmarklet的基础工作正常,棘手的部分是获取剪贴板值,因为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
。
Clipboard copy无法使用脚本。它必须来自用户操作。
相似,以同样的方式,您无法从书签中调用全屏。
从Firefox控制台:
document.execCommand(‘cut’/‘copy’) was denied because it was not
called from inside a short running user-generated event handler.