diff --git a/browser/chrome/document-element.js b/browser/chrome/document-element.js new file mode 100644 index 0000000..aa63fdb --- /dev/null +++ b/browser/chrome/document-element.js @@ -0,0 +1,16 @@ +const utils = require('sdenv-jsdom/lib/jsdom/living/generated/utils.js'); +const sdenv = require('sdenv-extend').sdenv(); +const document = sdenv.memory.sdWindow.document; + +const getElementsByTagNameOri = document.getElementsByTagName; +document.getElementsByTagName = (...params) => { + var findArr = getElementsByTagNameOri.apply(document, params); + if (params[0] === 'script' && document.readyState === 'loading' && document[utils.implSymbol]._currentScript) { + // dom动态解析的临时解决方案,看后续是否会产生其它问题 + const findIdx = [...findArr].indexOf(document[utils.implSymbol]._currentScript[utils.wrapperSymbol]); + if (findIdx > -1) { + return [...findArr].slice(0, findIdx + 1); + } + } + return findArr; +} diff --git a/browser/chrome/index.js b/browser/chrome/index.js index 5fa491f..feaf740 100644 --- a/browser/chrome/index.js +++ b/browser/chrome/index.js @@ -10,3 +10,4 @@ require('./ctorRegistry'); require('./location'); require('./indexedDB'); require('./RTCPeerConnection'); +require('./document-element'); diff --git a/browser/index.js b/browser/index.js index cfce0ef..19a47f5 100644 --- a/browser/index.js +++ b/browser/index.js @@ -1,4 +1,6 @@ require('module-alias/register'); +// const jsdomDevtoolsFormatter = require('jsdom-devtools-formatter'); +// jsdomDevtoolsFormatter.install(); const SdenvExtend = require('sdenv-extend'); module.exports = (win, type = 'chrome') => {