Window.document未更新

时间:2018-01-26 11:21:35

标签: javascript html dom

我在浏览器中使用const w = window.open('www.example.com');打开一个新标签,然后我使用let d = w.document;获取DOM然后我转到另一个点击事件的网页:d.querySelector('a').click();新网页在同一窗口中打开,我想通过再次运行d = w.document来抓取刚开始的页面的DOM。这就是我被卡住的地方。

我面向当前openend窗口的DOM,但是我得到了前一个窗口的DOM。当console.log(w)(在.js本身不在控制台中),打开新网页时,我获得当前页面的window对象,window.document匹配openend的DOM页。但正如我在实际上所说的那样,当我在新页面上运行d = w.document时,我得到了上一页的DOM。

以下代码是我使用的整个功能。旁注:我没有(/不能)使用window.document.onload因为我不理解,但似乎我无法将函数附加到窗口onload事件。另外为了清楚我的代码是在ES6类中,所以我没有使用示例中的const

问题: 当我在新的openend网页上运行getDOM方法时,它返回上一页的DOM。

 async foo() {
    await this.getDOM()
    .then(w => this.d = w.document);

    const x = this.d.querySelector('button.x');
    console.log(send); //null
}

getDOM () {
    return new Promise(resolve => {
        const interval = setInterval(() => {
            if (this.w.document.readyState === 'complete') {
                clearInterval(interval);
                resolve(this.w);
            }
        }, 500);    
    });
}

我希望有人可以提前帮助!

0 个答案:

没有答案