0

我有一个 iframe 问题(对我来说有点奇怪)。问题是我的文档中有一个 iframe,并且有几个函数在该 iframe 上执行不同的任务,并用于访问我们使用的 iframe 的内容:

$("iframe").contents();

所以我没有写这个长语句,而是使用了一个全局变量:

var i = $("iframe").contents();

但这不是很好,比如

alert( i.find("someelement") );    

=>undefined

alert($("iframe").contents().find("someelement")    

=>[object]

这里有什么问题?

4

3 回答 3

1

代替

var i = $("iframe").contents();

window.i = $("iframe").contents();

Asi的作用域比window, 小,后者用于在 JavaScript 中声明全局变量。

iframe但还有一件事是,如果它来自不同的域,则您不能修改 中的任何项目。希望这可以帮助。

于 2012-06-08T07:12:24.610 回答
0

您可能正在覆盖i某个地方,或者它不是全局的。为确保它是全局的,请不要使用 var。相反,定义window.i = ...;并始终引用window.i. 这避免了可能与局部变量混淆(这可能经常发生,因为i它几乎总是用作迭代器变量)。i如果您将它用于除 iframe 之外的任何内容(例如前面提到的迭代器),还要额外确保您始终声明为本地。

于 2012-06-08T07:09:42.707 回答
0

您的 iframe 的内容与它所在的页面是否在同一个域中?

更多:http ://en.wikipedia.org/wiki/Same_origin_policy

于 2012-06-08T07:11:36.860 回答