0

라이브 채팅 기능을 통합하려고하며 JQuery 문을 사용하여 채팅 세션 ID가 채팅이 시작될 때까지 생성되지 않은 div ID에서 가져 오려고합니다. (동적으로 페이지에 추가됩니다.) 물론 논리적으로, 나는 채팅이 시작되고 그것이 존재할 때까지 엘리먼트를 선택하려고하지 않는다는 것을 확신합니다. 여기에 관련 HTML 구조와 내가 사용하고 코드의 라인은 다음과 같습니다JQuery .children()이 동적으로 추가 된 요소를 반환하지 않습니까?

HTML :

<!--These do not exist until a chat is started--> 
    <div class="customer_inner_widget"> 
     <div id="chat-session-5748220" style="height:100%;"> 

JQuery와는 :

$(".customer_inner_widget").children().first().attr("id").split("-")[2] 

이상한 점은 정상적인 상황에서 중입니다 채팅을 닫을 때 스크립트에서 실행하거나 채팅이 시작된 후 Google 크롬 개발자 도구 콘솔에서 실행하면 작동하지 않음 :

Output: 
    Uncaught TypeError: Cannot read property 'split' of undefined 
     at <anonymous>:1:58 

(3210) ...하지만 나는 단순히 바로 내 페이지의 채팅 창을 클릭하고 선택하는 경우 콘솔에서 동일한 코드 줄을 실행 "검사"... 그것은 작동 :

Output: 
    "5748220" 

HTML을 검사하는 것만으로 갑자기 Chrome이 갑자기 작동하지 않습니다 ...? 스크립트에서이 숨겨진 마술을 어떻게 수행 할 수 있습니까?

+1

ID에 닫는 큰 따옴표가 없습니다. 해당 컨텍스트에 사용 된 jQuery는 요소가 만들어 질 때 신경 쓰지 않습니다. –

+0

잘못된 것입니다. HTML이 정확합니다. 복사 방법을 알아 내지 못했기 때문에 여기에 수동으로 입력했습니다. chrome에서 단 한 줄의 코드 – Reddy

+3

jquery 코드를 실행할 때 알기가 어렵습니다.이 코드가 실행 중일 때 컨텍스트를 제공하지 않습니다. 문제를 잘 보여주는 작은 예제를 만들 수 있다면 (매우 어렵지만 코드를 작성하는 것이 어려울 수 있음) 아주 좋은 응답을 얻는 데 매우 유용 할 것입니다. – ProgrammerV5

답변

0

그래서 문제는 아이폰이 iFrame 내에 있으며 실제로 iFrame에서 외부 동적으로 추가 된 콘텐츠에 액세스 할 수 없다는 것과 관련이있는 것으로 보입니다. 나는 JQuery가 요소를 발견해야만하기 때문에 검사 ​​후 내부 내용을 알게되었다고 생각한다.

관련 문제