我很快将一小段代码组合在一起,以从网页上的类(chrome扩展名)中获取和修改字符串。 该代码在第一个运行时可以正常工作,但是如果我将网页导航到更改类文本的新公司,该代码将停止正常工作(它从第一个运行时返回值)
如果我刷新页面或在新标签页中打开它,它将再次正常工作。
我是javascript的100%新手,我不知道如何解决此问题。
旁注:我是否可以在运行时向用户询问布尔值问题,并根据答案将partname或finalpart字符串返回剪贴板?
// 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);
}