In a modified search_mrsparkle/templates/pages/base.html, we have a <script> tag inserted just before the </body> tag, as follows:
<script src="${make_url('/static/js/abcxyz.js')}"></script></body>
with abcxyz.js placed in the search_mrsparkle/exposed/js directory.
The abcxyz.js file has the following code:
require(['splunkjs/mvc'], function(mvc) { ... }
which performs some magical stuff on the web page. But when the page loads, the debugging console reports "require is not defined". This used to work under SE 9.0.0.1 (and earlier) but now fails under SE 9.1.1.
Yes, we realize we are modifying Splunk-delivered code, but we have requirements that required us taking these drastic actions.
Anyone have any ideas on how to remedy this issue?
---------------------------------------------------------------------------
@mhoustonludlam_ @C_Mooney
So, I found a "fix" or "workaround" that I'm not too happy about, but it seems to solve the issue.
Surrounding the "require" with a 5 second "setTimeout" call, seems to work fine, as follows:
setTimeout(function() {
require(['splunkjs/mvc'], function(mvc) { ... }
}, 5000);
If anyone can shed any light on this "issue", please advise.
Without knowing more about your javascript, is there something happening where you are doing a require of a module that should be included with an import? Or, you might need to load abcxyz.js in a different way because of the contents.
This answer over on StackOverflow addresses the more generic javascript quirkiness you could be running into.