@@ -116,16 +116,29 @@ var modalStyleguide = {
116
116
* @param {Boolean } if the text in the dropdown should be switched
117
117
*/
118
118
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...');
129
142
}
130
143
} ,
131
144
0 commit comments