2012-06-08 5 views
0

iframe에 문제가 있습니다 (약간 이상합니다).자바 스크립트의 전역 변수가 제대로 작동하지 않습니다.

$("iframe").contents(); 

을 그래서 대신 내가 사용이 긴 문장을 작성 : 문제는 그 iframe을에 다른 작업을 운영 및 iframe의 내용을 액세스하기 위해 우리가 사용하는 내 문서에서 iframe이 있고, 몇 가지 기능이 있다는 것입니다 전역 변수 :

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

그러나이

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

=>undefined

처럼 잘 작동하지 않습니다
alert($("iframe").contents().find("someelement")  

=>[object]

무엇이 문제는 여기에?

+0

당신이 어디에서 선언했는지와 같은 전체 코드를 붙여 넣으십시오. –

답변

1

i으로

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

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

교체는 자바 스크립트에서 전역 변수를 선언하는 데 사용됩니다 window보다 적은 범위를 가지고 있습니다.

하지만 다른 도메인 인 경우 iframe 안에있는 항목을 수정할 수는 없습니다. 희망이 도움이됩니다.

0

아마도 어딘가에서 i을 덮어 쓰고 있거나 전역 적이 아닙니다. 전역을 보장하려면 var를 사용하지 마십시오. 대신 window.i = ...;을 정의하고 항상 window.i을 참조하십시오. 이렇게하면 지역 변수와의 혼동을 피할 수 있습니다. (이는 종종 i이 거의 항상 반복 변수로 사용됨에 따라 자주 발생할 수 있습니다). 또한 iframe 이외의 다른 요소 (예 : 앞의 반복자)에 사용하는 경우 항상 i을 로컬로 선언해야합니다.

관련 문제