0

我正在构建一个基于 Web 的代码编辑器,但在处理焦点时遇到了麻烦。很明显,我需要为每个编辑器实例移动到 iframe。但是,我不确定在这种情况下是否可以使用 JavaScript 的基于原型的继承。

基本上,我需要包含的脚本来包含原型定义,并且每个服务于特定 iframe 的对象都使用这个单一的原型。

从这点来看,我有两个想法:

  1. 提供 iframe 的对象应托管在顶部窗口中。
  2. 服务于 iframe 的对象应托管在子 iframe 的窗口中。

处理这种情况的最佳方法是什么?我不确定如何正确处理 JavaScript 上下文边界...

4

1 回答 1

1

可以办到。这将需要一些工作,您可能必须对源代码进行一些更改。

首先,您必须确保从不在任何代码中使用 window.document。您正在处理多个文档,它们不能共享节点。不过,您可以使用 [node].ownerDocument,这样您就可以进行跨框架安全节点交互。我以前没有使用过 CodePress,但如果它不能以这种方式跨帧工作,我不会感到惊讶。

此外,IE 和对象/函数跨框架存在一些问题。我记得,有时函数会转换为对象,然后实际上不能被调用,并且检测涉及使用 toString 并将其与“[object Object]”进行比较

于 2010-12-18T13:48:31.533 回答