LINUX.ORG.RU

История изменений

Исправление mydibyje, (текущая версия) :

У переменной template нет метода select. Откройте DevTools в браузере через F12 и там в консоли напишите var template = "", нажмите Enter и затем начните писать template.se, в подсказках будет только search и еще парочка методов для строк. Вот если бы template была бы HTMLInputElement тогда select был бы. Но такой метод копирования, когда создается скрытый HTMLInputElement, туда записывается текст, и потом копируется через select, довольно устарел, да и execCommand помечен как deprecated. Так что советую использовать Clipboard API.

//template.select();
//document.execCommand('copy');
navigator.clipboard.writeText(template).then(function() {
  prompt("Your Wikipedia template:", template, " has been copied into the clipboard.");
})

Отлаживать скрипт, чтобы видеть понятные ошибки, можно в той же DevTools консоли, запуская всю программу как IIFE

(function() {
  var isbn = prompt("Enter the ISBN of the book");
  //...
    prompt("Your Wikipedia template:", template, " has been copied into the clipboard.");
  });
})();

Тогда вы сразу увидите человекочитаемую ошибку, что функции select у template нет.

Uncaught (in promise) TypeError: template.select is not a function

от которой дальше можно плясать

Исправление mydibyje, :

У переменной template нет метода select. Откройте DevTools в браузере через F12 и там в консоли напишите var template = "", нажмите Enter и затем начните писать template.se, в подсказках будет только search и еще парочка методов для строк. Вот если бы template была бы HTMLElement тогда select был бы. Но такой метод копирования, когда создается скрытый HTMLElement, туда записывается текст, и потом копируется через select, довольно устарел, да и execCommand помечен как deprecated. Так что советую использовать Clipboard API.

//template.select();
//document.execCommand('copy');
navigator.clipboard.writeText(template).then(function() {
  prompt("Your Wikipedia template:", template, " has been copied into the clipboard.");
})

Отлаживать скрипт, чтобы видеть понятные ошибки, можно в той же DevTools консоли, запуская всю программу как IIFE

(function() {
  var isbn = prompt("Enter the ISBN of the book");
  //...
    prompt("Your Wikipedia template:", template, " has been copied into the clipboard.");
  });
})();

Тогда вы сразу увидите человекочитаемую ошибку, что функции select у template нет.

Uncaught (in promise) TypeError: template.select is not a function

от которой дальше можно плясать

Исходная версия mydibyje, :

У переменной template нет метода select. Откройте DevTools в браузере через F12 и там в консоли напишите var template = "", нажмите Enter и затем начните писать template.se, в подсказках будет только search и еще парочка методов для строк. Вот если бы template была бы HTMLElement тогда select был бы. Но такой метод копирования, когда создается скрытый HTMLElement, туда записывается текст, и потом копируется через select, довольно устарел, да и execCommand помечен как deprecated. Так что советую использовать Clipboard API.

//template.select();
//document.execCommand('copy');
navigator.clipboard.writeText(template).then(function() {
  prompt("Your Wikipedia template:", template, " has been copied into the clipboard.");
})

Отлаживать скрипт, чтобы видеть понятные ошибки, можно в той же DevTools консоли, запуская всю программу как IIFE

(function() {
  var isbn = prompt("Enter the ISBN of the book");
  //...
    prompt("Your Wikipedia template:", template, " has been copied into the clipboard.");
  });
})();

Тогда вы сразу увидите человекочитаемую ошибку, что функции select у template нет.

Uncaught (in promise) TypeError: template.select is not a function

от которой дальше можно плясать