首页 > 解决方案 > NetSuite SuiteScript 2.0:内联 HTML document.querySelector() 结果

问题描述

我有一个 SuiteScript 2.0内联 HTML字段,其默认值是通过成功获取网页并抓取所需数据的脚本注入的(即 hack):

@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:

@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

考虑到字段值只是传递给浏览器进行处理的字符串, 我将如何将这个“desiredText”结果(即实际抓取的文本)传递回普通文本变量以在 NetSuite 表单上使用?

感谢您的时间和考虑。

标签: javascriptnetsuitesuitescript

解决方案


您可以使用postMessage将数据从inlineHTML字段发布到消息侦听器,该侦听器将位于您的客户端脚本中,并且该侦听器将更新所述字段数据。


推荐阅读