gpt4 book ai didi

javascript - 使用回调函数时,JavaScript 如何访问不再位于 DOM 中的 iframe 中的元素?

转载 作者:行者123 更新时间:2023-11-28 08:24:58 28 4
gpt4 key购买 nike

我不知道用语言解释这一点的最佳方式,所以这里是我的问题的一个例子: http://jsfiddle.net/efZyt/

(iframe 源代码在这里: http://jsfiddle.net/H6rLQ/ )

  1. 点击“更改来源”按钮。
  2. 在输入框中输入一些内容。
  3. 重复几次。
  4. 点击“重复文本”按钮。

您将收到一条警报,它将向您读回您在每一步中在框中输入的文本。

我有点困惑回调函数是如何实现的

function(){ alert($('#getSomeText').val()); }

在文本值存在之前加载到回调数组中,在该值不再存在(或者更确切地说,存在于我找不到的地方)之后调用该函数,但它能够生成所有值。

我无法弄清楚这些值保存在哪里供回调访问它们。 iframe 的整个实例是否会被保留为闭包上下文以供回调运行或执行其他操作?

最佳答案

这就是 JavaScript 的美妙之处。值(value)并不像您想象的那样存储在任何地方!这就是“闭包”的魔力。

闭包基本上是一个变量即使在其作用域结束后仍然存在的概念。

例如:

function outerFunction() {
innerVar = function innerFunction() {
alert('hello');
}
return innerVar;
}
var outterVar = outerFunction();
outterVar();

上面将输出“hello”。注意,outerFunction 已经执行完毕,'innerVar' 的作用域也结束了;然而,有趣的是我们仍然可以执行外部函数中定义的函数。

同样,当您将函数传递给parent.register时,您没有传递“val()”获得的实际值;您正在传递一个函数,该函数稍后将被执行,并且在内部将充当闭包。

当它执行时,它会使用“闭包”函数中存在的元素的“val()”获取值。

关于javascript - 使用回调函数时,JavaScript 如何访问不再位于 DOM 中的 iframe 中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22547963/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com