Я быстро собрал небольшой кусочек кода для извлечения и изменения строки из класса на веб-странице (расширение Chrome).Код отлично работает в первый раз, но если я перейду на веб-страницу к новой компании, где меняется текст класса, код перестанет работать правильно (он возвращает значения из первого времени выполнения)
Если яобновите страницу или откройте ее в новой вкладке, она снова работает нормально.
Я на 100% новичок в javascript, не знаю, как это исправить.
Sidenote: Есть лиспособ задать пользователю логический вопрос во время выполнения и, в зависимости от ответа, вернуть в буфер обмена либо имя, либо заключительную строку?
// content.js
chrome.runtime.onMessage.addListener(
function (request, sender, sendResponse) {
if (request.message === "clicked_browser_action") {
var wholeName = document.getElementsByClassName('ng-binding ng-scope')[0].innerHTML;
var partName = wholeName.substring(0, 4)
var finalPart = "m" + partName.substring(0, 1) + "a" + partName.substring(2, 1) + "x" + partName.substring(3, 2) + "X" + partName.substring(3, 4)
copyStringToClipboard(finalPart);
}
}
);
function copyStringToClipboard(str) {
// Create new element
var el = document.createElement('textarea');
// Set value (string to be copied)
el.value = str;
// Set non-editable to avoid focus and move outside of view
el.setAttribute('readonly', '');
el.style = { position: 'absolute', left: '-9999px' };
document.body.appendChild(el);
// Select text inside element
el.select();
// Copy text to clipboard
document.execCommand('copy');
// Remove temporary element
document.body.removeChild(el);
}