최상위 프레임이나 Firebug의 컨텍스트에서 프레임에 정의 된 함수를 호출 할 때 DOM 및 JavaScript 및 새로운 문제에 익숙합니다. 아래의 프레임을 감안할 때Javascript/jQuery : 다른 프레임에서 함수 호출하기
:
<html>
<body>
<frameset cols="*" rows="81,*">
<frame id="topFrame" tabindex="1" name="topFrame" noresize="noresize" scrolling="No" src="hometop.aspx"/>
<frameset border="0" cols="214,*" frameborder="no" framespacing="0">
<frameset border="0" cols="*" frameborder="no" framespacing="0" rows="70,*">
<frame tabindex="-1" id="chatFrame" name="chatFrame" scrolling="No" noresize="noresize" src=""/>
<frame tabindex="-1" id="leftFrame" name="leftFrame" noresize="noresize" src="leftFrame.aspx"/>
</frameset>
<frame tabindex="-1" id="mainFrame" name="mainFrame" src=""/>
</frameset>
<noframes>Your browser does not support frameset.</noframes>
</frameset>
</body>
</html>
내가 위의 문서를 처음 열 때 #leftFrame에 정의 된 자바 스크립트 함수를 호출하는 자바 스크립트 후크를 작성하는 것을 시도하고있다. 나는 Firebug 세션에서 jQuery과 함께이 작업을 수행하고있다.
jQuery ("# leftFrame")은 프레임 DOM 요소를 반환합니다. 이제 프레임의 컨텍스트에서 내 함수 (openLink, leftFrame.aspx의 일반 오래된 스크립트 태그에 정의 됨)를 실행하고 싶습니다. 내 이해는이 함수가 leftFrame의 document 요소 아래에있는 DOM 노드가 될 것이라는 점이다. 그러나 프레임의 문서를 가져올 수 없습니다.
이 나는 시도했다 :
jQuery("#leftFrame").document
jQuery("#leftFrame").contentDocument
jQuery("#leftFrame").find("html")
또한 나는 예상대로 내가 어떤 DOM 노드 아래에있는 오픈 링크 기능을 볼 수 없습니다 방화범에 DOM 트리를 검사 할 때.
아무도 도와 줄 수 있습니까?
'contentWindow'는 HTML5까지 표준화되지 않은 IE 확장이며 다른 브라우저의 이전 버전에서 지원 문제가 있습니다. 일반적으로 긴 표준'contentDocument' 속성이있는 상태에서 먼저 코드를 분기하고 (관련 'window'를 얻기 위해'defaultView'를 사용하십시오), IE6-7의'contentWindow '로 떨어집니다. – bobince