Можно ли отредактировать переменный блок в коде генератора JavaScript?Javascript

Форум по Javascript
Ответить
Anonymous
 Можно ли отредактировать переменный блок в коде генератора JavaScript?

Сообщение Anonymous »

В настоящее время я пытаюсь отредактировать значение переменного блока в генераторе JavaScript. < /p>
Функция генерирует пару клавиш RSA. Затем предполагается назначить частные и публичные ключи своим соответствующим переменным блокам в глобальном пространстве блоков (эти переменные блоки называются PrvKey и Pubkey). < /P>
Однако после запуска кода он просто печатает содержимое частных и публичных ключей отдельно; Затем, когда я пытаюсь распечатать содержимое переменных PrvKey и Pubkey, он возвращает «не определен». Или я просто делаю это неправильно? const key_assignment = {
init: function() {
this.appendDummyInput()
.appendField("private key var")
.appendField(new Blockly.FieldVariable("prvKey"), "PRV");
this.appendDummyInput()
.appendField("public key var")
.appendField(new Blockly.FieldVariable("pubKey"), "PUB");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setOutput(true, "String");
this.setTooltip('Assigns generated RSA keys to private and public key variables');
this.setHelpUrl('');
this.setColour(225);
}
};
Blockly.common.defineBlocks({list_to_vars : list_to_vars });
< /code>
javaScript Generator: < /p>
javascript.javascriptGenerator.forBlock['key_assignment'] = function(block) {
const varPrv = Blockly.JavaScript.nameDB_.getName(block.getFieldValue('PRV'), Blockly.Variables.NAME_TYPE);
const varPub = Blockly.JavaScript.nameDB_.getName(block.getFieldValue('PUB'), Blockly.Variables.NAME_TYPE);

const code = `
rsaKeypair = KEYUTIL.generateKeypair("RSA", 1024);
${varPrv} = KEYUTIL.getPEM(rsaKeypair.prvKeyObj, "PKCS8PRV");
${varPub} = KEYUTIL.getPEM(rsaKeypair.pubKeyObj);
`;
return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL];
};
< /code>
inpection: < /p>
window.addEventListener('load', () => {
window.workspace = Blockly.inject('blocklyDiv', {
toolbox: document.getElementById('toolbox'),
scrollbars: true
});
});
< /code>
выполнение: < /p>
function runCode() {
try {
const code = Blockly.JavaScript.workspaceToCode(window.workspace);
const result = eval(code);
document.getElementById('output').textContent = "Result:\n" + result;
} catch (e) {
document.getElementById('output').textContent = "Error:\n" + e;
}
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... rator-code
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»