Как использовать внешнюю форму и получать данные POST из внешней формы, используя SuiteScript? - PullRequest
0 голосов
/ 05 марта 2019

Если есть внешняя форма, которая публикует некоторые защищенные пользовательские данные, а затем кто-то хотел получить эти данные POST из формы для передачи в NetSuite, есть ли способ сделать это в SuiteScript?Простой пример того, как будет отображаться форма с использованием iframe:

define(['N/ui/serverWidget'],
    function(serverWidget) {
        function onRequest(context) {
        var func = 'test';
        var request = context.request;
        var url = 'https://www.sample.com/sample-form.html'; // Not a real form
        var title = 'TEST';

        if(request.method == 'GET') {
            try {
                var content = '<iframe width=960px height=100% style="height:640px;" src=' + url + '></iframe>'

                var newForm = serverWidget.createForm({
                    title: title
                });

                var newField = newForm.addField({
                    id: 'custpage_form',
                    type: serverWidget.FieldType.INLINEHTML,
                    label: 'TEST'
                });

                newField.defaultValue = content;
                context.response.writePage(newForm);
            }
            catch(e){
                log.error(func, JSON.stringify(e));
            }
        }
        else {
        }
    }

    return {
      onRequest: onRequest
    };
});

1 Ответ

0 голосов
/ 05 марта 2019

Вы можете использовать window.postMessage для передачи данных из внешней формы и добавления клиентского скрипта в пакет для прослушивания данных с помощью window.addEventListener.

Чтобы прикрепить клиентский скрипт к форме, вы можете использовать следующее

newForm.clientScriptModulePath = './FILE_PATH_TO_CLIENT_SCRIPT';

, где newForm - это form объект, возвращенный из serverWidget.createForm, и в клиентском скрипте вы можете иметь pageInit , который инициализирует eventListener .

...