diff options
Diffstat (limited to 'node_modules/jquery/src/core/DOMEval.js')
| -rw-r--r-- | node_modules/jquery/src/core/DOMEval.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/node_modules/jquery/src/core/DOMEval.js b/node_modules/jquery/src/core/DOMEval.js new file mode 100644 index 0000000..59f6e02 --- /dev/null +++ b/node_modules/jquery/src/core/DOMEval.js @@ -0,0 +1,43 @@ +define( [ + "../var/document" +], function( document ) { + "use strict"; + + var preservedScriptAttributes = { + type: true, + src: true, + nonce: true, + noModule: true + }; + + function DOMEval( code, node, doc ) { + doc = doc || document; + + var i, val, + script = doc.createElement( "script" ); + + script.text = code; + if ( node ) { + for ( i in preservedScriptAttributes ) { + + // Support: Firefox 64+, Edge 18+ + // Some browsers don't support the "nonce" property on scripts. + // On the other hand, just using `getAttribute` is not enough as + // the `nonce` attribute is reset to an empty string whenever it + // becomes browsing-context connected. + // See https://github.com/whatwg/html/issues/2369 + // See https://html.spec.whatwg.org/#nonce-attributes + // The `node.getAttribute` check was added for the sake of + // `jQuery.globalEval` so that it can fake a nonce-containing node + // via an object. + val = node[ i ] || node.getAttribute && node.getAttribute( i ); + if ( val ) { + script.setAttribute( i, val ); + } + } + } + doc.head.appendChild( script ).parentNode.removeChild( script ); + } + + return DOMEval; +} ); |
