Javascript reality和调试控制台之间的区别
我完全迷路了 这是我的密码:Javascript reality和调试控制台之间的区别,javascript,jquery,dom,console.log,Javascript,Jquery,Dom,Console.log,我完全迷路了 这是我的密码: var iframe = $(this.module.parentDocument).find("iframe[data-modulid='" + modulid + "']"); console.log("iframe", Object.assign(iframe)); var module = iframe[0].contentDocument.children[0].getAttribute("module"); console
var iframe = $(this.module.parentDocument).find("iframe[data-modulid='" + modulid + "']");
console.log("iframe", Object.assign(iframe));
var module = iframe[0].contentDocument.children[0].getAttribute("module");
console.log("module", Object.assign(module));
我得到一个iframe,并在控制台中显示它。它出现了,当我查看它的contentDocument->1stchildren时,我找到了我之前放在这里的模块
属性
但是当我把它放在一个var中,然后在控制台中显示它时,它是未定义的,不再存在了。我可以去找第一个孩子,但显然没有模块
我认为这是因为在控制台中,内容是“实现的”,所以我将变量放在Object.assign()中以确保有简单的副本。但是没有什么改变
如果有人发现了什么,我就嫁给他/她
谢谢。听起来您是在iframe加载之前完成的。使用加载事件监听器您是否收到任何控制台错误?可能与onload事件有关,或者您无权访问iframe内容“我将变量放在一个对象中。assign()以确保有简单的副本。”-不,这不起作用。Object.assign
的第一个参数是target,在您的情况下,它会原封不动地返回。也许你的意思是Object.assign({},iframe})
?但请注意,这在枚举性和某些属性的所有权方面可能仍然有困难。您是对的,我尝试了Object.assign({},iframe})
,然后我发现我的iframe并没有加载。非常感谢!