@@ -116,16 +116,29 @@ var modalStyleguide = {
116116 * @param {Boolean } if the text in the dropdown should be switched
117117 */
118118 collectAndSend : function ( el , iframePassback , switchText ) {
119- var patternData = JSON . parse ( el . innerHTML ) ;
120- if ( patternData . patternName !== undefined ) {
121- patternMarkupEl = document . querySelector (
122- '#' + patternData . patternPartial + ' > .pl-js-pattern-example'
123- ) ;
124- patternData . patternMarkup =
125- patternMarkupEl !== null
126- ? patternMarkupEl . innerHTML
127- : document . querySelector ( 'body' ) . innerHTML ;
128- modalStyleguide . patternQueryInfo ( patternData , iframePassback , switchText ) ;
119+ /**
120+ * Verify <script> tag has JSON data available (not just whitespace) - helps prevents JS errors from
121+ * getting thrown when certain script tags aren't rendered with partial.patternData content.
122+ */
123+ if ( / \S / . test ( el . innerHTML ) ) {
124+ var patternData = JSON . parse ( el . innerHTML ) ;
125+ if ( patternData . patternName !== undefined ) {
126+ patternMarkupEl = document . querySelector (
127+ '#' + patternData . patternPartial + ' > .pl-js-pattern-example'
128+ ) ;
129+ patternData . patternMarkup =
130+ patternMarkupEl !== null
131+ ? patternMarkupEl . innerHTML
132+ : document . querySelector ( 'body' ) . innerHTML ;
133+ modalStyleguide . patternQueryInfo (
134+ patternData ,
135+ iframePassback ,
136+ switchText
137+ ) ;
138+ }
139+ } else {
140+ // @todo : how are we handling conditional logging for debugging based on the dev environment?
141+ // console.log('This <script> tag\'s JSON is empty for some reason...');
129142 }
130143 } ,
131144
0 commit comments