2012-10-30 2 views
0

div의 내용을 새로 고치기 위해 ajax를 사용하고 있습니다. 그 아약스 스크립트 안에서 myTasks라는 새로운 카운트가 세션 변수 ($_SESSION['myTasks'])에 생성됩니다.ajax 자식에서 부모 javascript 함수를 호출 할 수 있습니까?

또한 아약스 스크립트 내에서 세션 값을 새 값으로 재 할당하기 전에 세션 값과 비교하여 새 값을 확인합니다. 새 값이 세션 변수의 값보다 큰 경우 길이가 약 2 초인 차임 소리를 재생하고 싶습니다. 차임 사운드를 재생할 수 있도록 다음 코드를 작성했습니다.

<audio src="./sounds/newTask.wav" id="newTaskSound" preload="auto"></audio> 

소리 재생을 시작한다는 의미에서 효과가 있습니다. 그러나 내 아약스 타이머는 매 초마다 꺼지기 때문에 사운드는 연주를 통해 반쯤 끊어져 버렸습니다 ... 더 자주 듣지 않고 단지 1/4의 벨만 연주되었습니다.

내가 원하는 것은 : 새로운 myTasks 수가 세션 변수보다 큰 경우 기본 페이지에서 (아약스 호출 함수가 포함 된 것과 같은) javascript 함수를 호출하십시오.

내 질문은 : 어떻게 아이작 "자식"HTML "부모"함수를 호출 할 수 있습니까? 나는 다음과 같은 몇 가지 것을 시도했다 :

<script type='text/javascript'>window.top.playNewTask.call();</script> 

그러나 나는 아무 것도 할 수 없다.

ajax 자식에서 javascript 함수를 호출하는 방법이 있습니까?

+0

부모/자녀가 정확히 무엇을 의미합니까? 재귀 호출? 서버 리소스가 너무 비쌀 수 있습니다. 나는 당신의 질문을 읽고있는 방식으로 다음과 같이하고 싶다.'function parent() {$ .ajax ({.... parent() ....}); }' – Ryan

+0

부모님, 아이가 브라우저 url (즉, index.php)에로드 한 파일을 의미합니다. index.php가 호출하는 ajax 페이지를 의미합니다. – Brds

답변

0

어떻게 코드를 작성했는지 더 자세히 알려면 코드를 더보고 싶습니다.

iframe을 사용하는 경우 페이지 및 iframe의 URL이 일치하는 경우 상위 (상단) 창에서만 함수를 호출 할 수 있습니다.

그렇지 않으면 두 기능이 동일한 문서 범위에 있기 때문에 window.top을 사용할 이유가 없습니다.

<audio> 태그에 대한 삭제 타이머 설정 - setTimeout을 사용하고이 오디오 태그를 2 초 (또는 2.5 초 안전) 후에 삭제할 수 있습니다. 그런 다음 새 오디오 태그를 추가하십시오. 그것은 차임이 끊어지지 않도록 유지해야하며, 점검 할 때마다 정수가 증가하면 겹치는 차임 소리를줍니다.

setTimeout을 사용하여 변수를 변경하고 재생이 끝날 때까지 오디오 태그가 교체되지 않도록 할 수도 있습니다.

관련 문제