显示复制提示

显示复制提示

我想要一个解决方案,允许我复制 ISBN 列的内容维基百科表格使用键盘快捷键逐个复制到剪贴板。我安装了 AutoHotKey(与此问题无关),如果这有帮助的话。谢谢。

答案1

编辑:直接将 ISBN 复制到剪贴板以下是新代码。

基于这个答案


显示复制提示

您可以使用以下 JavaScript 代码:

var textIndex = 0;
jQuery("table.wikitable:nth-child(9)").after("<button type='button' onclick='copyText()'>Get Next ISBN</button>");
function copyText() {
    window.prompt("Copy to clipboard: Ctrl+C, Enter", jQuery("table.wikitable:nth-child(9) tr td:nth-of-type(4) a").eq(textIndex).text() );
    textIndex++;
}

它在表格底部创建一个按钮。

每一次,

  1. 通过 Tab 切换到网页(例如使用Alt+TabCtrl+ Tab)。
  2. 点击按钮。出现提示。
  3. Ctrl+ C
  4. 按下Enter关闭提示。

它不是最有效的,但它确实有效。

要使用此代码:

  1. 打开浏览器的控制台,例如按F12
  2. Console如果尚未选择该选项卡,请导航至该选项卡。
  3. 将其粘贴到框中。
  4. Enter

直接将 ISBN 复制到剪贴板

新代码在单击按钮时复制 ISBN,从而减少了步骤数。(var textIndex = 0;如果您不想丢失位置,请省略该行。)但它只在某些浏览器中有效;我在 Chrome 45.0.2454.85 上进行了测试。根据链接答案,它应该可以在 Google Chrome 44、Firefox 42.0a1 和 IE 11.0.8600.17814 上运行。

function copyTextToClipboard(text) {
  var textArea = document.createElement("textarea");

  //
  // *** This styling is an extra step which is likely not required. ***
  //
  // Why is it here? To ensure:
  // 1. the element is able to have focus and selection.
  // 2. if element was to flash render it has minimal visual impact.
  // 3. less flakyness with selection and copying which **might** occur if
  //    the textarea element is not visible.
  //
  // The likelihood is the element won't even render, not even a flash,
  // so some of these are just precautions. However in IE the element
  // is visible whilst the popup box asking the user for permission for
  // the web page to copy to the clipboard.
  //

  // Place in top-left corner of screen regardless of scroll position.
  textArea.style.position = 'fixed';
  textArea.style.top = 0;
  textArea.style.left = 0;

  // Ensure it has a small width and height. Setting to 1px / 1em
  // doesn't work as this gives a negative w/h on some browsers.
  textArea.style.width = '2em';
  textArea.style.height = '2em';

  // We don't need padding, reducing the size if it does flash render.
  textArea.style.padding = 0;

  // Clean up any borders.
  textArea.style.border = 'none';
  textArea.style.outline = 'none';
  textArea.style.boxShadow = 'none';

  // Avoid flash of white box if rendered for any reason.
  textArea.style.background = 'transparent';


  textArea.value = text;

  document.body.appendChild(textArea);

  textArea.select();

  try {
    var successful = document.execCommand('copy');
    var msg = successful ? 'successful' : 'unsuccessful';
    console.log('Copying text command was ' + msg);
  } catch (err) {
    console.log('Oops, unable to copy');
  }

  document.body.removeChild(textArea);
}

var textIndex = 0;
jQuery('table.wikitable:nth-child(9)').after('<button type="button" onclick="copyISBN()">Get Next ISBN</button>');
function copyISBN() {
  copyTextToClipboard(jQuery('table.wikitable:nth-child(9) tr td:nth-of-type(4) a').eq(textIndex).text());
  textIndex++;
}

每一次,

  1. 通过 Tab 切换到网页(例如使用Alt+TabCtrl+ Tab)。
  2. 单击按钮,或按Space按钮(如果按钮已经聚焦)。ISBN 会自动复制到剪贴板。

它不能通过快捷键工作,但至少它可以为您复制。

相关内容