NetSuite SuiteScript 2.0: встроенный HTML document.querySelector () Результат - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть поле SuiteScript 2.0 Inline HTML, значение которого по умолчанию вводится с помощью сценария, который успешно извлекает веб-страницу и удаляет нужные данные (например, взлом):

@NScriptType UserEventScript

var field = scriptContext.form.addField({
            id: 'custpageinjectcode',
            type: 'INLINEHTML',
            label: 'Inject Code'
});
field.defaultValue = "<script> ...var desiredText = document.querySelector(...).innerText; alert(desiredText);'jQuery(function($){ require(['/SuiteScripts/clientSuiteScript.js'], function(mod){ mod.pageInit();});});'</script>"

У меня также есть clientScript с Listener:

@NScriptType ClientScript

function (currentRecord) {

        function pageInit() {
            window.addEventListener("message", browser_ReceiveMessage, false);
            console.log('Added Listener...');

        }

        return {
            pageInit: pageInit
        }


        function browser_ReceiveMessage(event) {

            var curRec = currentRecord.get();
            console.log('Current Record ID', curRec.id)
        }//end function

    }//end main function

);//end script

Как мне go передать этот 'требуемый текст' результат (то есть фактический очищенный текст) обратно в обычный текст переменная для использования в форме NetSuite, учитывая, что значение поля - это просто строка, которая передается в браузер для обработки?

Спасибо за ваше время и внимание.

1 Ответ

1 голос
/ 28 февраля 2020

Вы можете использовать postMessage для отправки данных из поля inline HTML в прослушиватель сообщений, который будет в вашем client-script , и этот прослушиватель будет обновить данные указанных полей.

...