| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- 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;
- } );
|