Custom Record: Use require() in client side Message window – CodeMirror errors
I’m trying to set the Subject of an Email Message being generated from a Custom Record (using the “Email” button in the UI) dynamically. To do this, I have a UserEvent script that creates an inlineHTML field, with JS as the text like so:
context.form.addField({
id : 'custpage_page_load_js',
type : serverWidget.FieldType.INLINEHTML,
label : 'PageLoadJS'
}).defaultValue = '<script>require([\'/SuiteScripts/path_to_my_client_script'], function(c) { c.afterPageLoad(); });</script>';
My afterPageLoad() function does the work of determining what the subject should be, and setting it via
jQuery('#subject').val(subject);
The problem I’m having is that the above breaks the HTML message editor. I believe it’s something to do with calling a script using require(). I tested without the UserEvent, simply calling my require in the browser console e.g. require([‘/SuiteScripts/path_to_my_client_script’], function(c) { c.afterPageLoad(); });
This works as above. What I notice is that if I click the “DIV” button on the message editor BEFORE I run the require in the console, the Message Editor is fine (and continues to work even after running my test). However, if I run my test in the console prior to clicking the DIV button at least once, I get the errors.
I don’t know a lot about require(). Is there some issue with it overriding what’s been required if I call it manually before anything else happens?





battk
How do you have a button to email? Is it it native?