2013-03-27 5 views
1

이것은 이상하고 나는 일종의 어리 석다. CRM에서페이지의 요소를 얻는 방법?

, 나는 F12를 쳤고 노란색 경고 섹션 알림 (및 하위 된 DIV라는 Notification0, Notification1 등) ID를 와 DIV 것을 확인.

그러나 내가 document.getElementById("Notifications")에 갔을 때, 나는 쪼그리고 앉았다. WTF?!

또한 document.write("")으로 갔을 때 아무 것도 변경되지 않았습니다. Cr과 FF에서, IE는 반응했지만 반응하지 않았습니다. 내가 미친가요?

EDIT :

enter image description here

상기 오타이다. 내가 실행하려고 할 때 :

document.getElementById("crmNotifications") 

나는 nada를 얻지 않는다. .. 제안?

+0

안녕하세요. @Konrad for me 아주 잘 작동합니다! 너는 정상적인 형태 야? 어떤 주체? CRM 롤업? 매우 이상합니다. –

+0

RU12, 온라인, ** 모든 ** 엔티티. 참으로 이상합니다. –

+0

@Pedro Azevedo - Konrad가 콘솔에서 스크립트를 실행하고 있기 때문에 이상한 것은 없습니다. 내 대답은 아래에 자세한 내용을 제공했습니다. – SergeyS

답변

4

당신은 제정신이 아니며, CRM 아무 문제 및 브라우저가 너무 :

브라우저의 콘솔에서 자바 스크립트를 실행하는 경우, 당신은 전체 페이지의 window의 컨텍스트에 없습니다. 그러나 CRM 양식 콘텐츠는 contentIFrame iframe 내부에 있습니다. IFrame은 실제로 별도의 페이지이므로 F12 개발자 도구에서이 iframe이 가리키는 링크를 원하는 다른 링크로 편집 할 수도 있습니다. http://www.bing.com에에 src 속성을 변경하려고하고 CRM 창 내부 빙 홈 페이지가 표시됩니다 (단 리본 남아) : 당신이 crmNotifications DOM 요소를 얻을 수없는 이유

<iframe title="This is IFrame" id="contentIFrame" src="http://www.bing.com" 
     style="width: 100%; height: 100%; border-top-style: none; 
       border-right-style: none; border-bottom-style: none; 
       border-left-style: none; display: inline;" > 

의 그 - 콘솔에서 자바 스크립트를 실행할 때이기 때문에 부모 창 컨텍스트에서. window.frames[0]을 지정하면 페이지의 첫 번째 IFrame이 표시됩니다 (실제로는 단 하나입니다). 그 안에 있기 때문에 crmNotifications을 얻을 수 있습니다.

CRM 사용자 정의를 통해 추가 한 사용자 지정 스크립트를 실행할 때 - 내부 양식 페이지 (IFrame이 가리키는 곳)에 연결되어 있기 때문에 스크립트에서 crmNotifications을 직접 얻을 수 있습니다. 왜냐하면 이미 ' 콘텐츠 '페이지 컨텍스트.

+0

안녕하세요 @ SergeyS 귀하의 설명 주셔서 감사합니다 매우 유용하지만 나는 콘라드의 동일한 명령을 실행하고 난 div 요소를 얻을. 언급 한 동작은 UR12에만 해당됩니까? –

+0

아니요, 이것은 UR12에만 해당되는 것은 아닙니다. 어떤 페이지에서 이것을 시도 했습니까? CRM의 일부 페이지에는 내부 IFrame이 없습니다. 그리고 btw는 어떤 브라우저입니까? – SergeyS

+0

+1 좋은 답변입니다. 그러나 필자는 @PedroAzevedo가 묘사하고 ** ** ** 작업 한 방식대로 그렇게하곤했던 것을 기억합니다. 아마도 나에게서 진실 된 문제를 숨기고있는 설정이 있었을 것입니다 ... –

3

당신은 약간 미친 사람이 아닙니다. D 잘 보셨다면 이드는 클래스가 아닙니다. ID는 crmNotifications입니다. 알림을 작성하고이 link 내 북마크에 있습니다.

+0

죄송합니다. 오타가 있습니다. 나는 * crmNotifications *를 의미했습니다. 나는 어쨌든 요소를 ​​얻지 못합니다.내 편집을 참조하십시오. +1. :) –

+0

당신은 * 프레임 *없이 할 수 있다는 것을 의미합니다, @glosrob 쇼처럼?! IE ** 및 ** FF? 오리! –

+0

내부 IFrame의 컨텍스트에있는 경우 직접 수행 할 수 있습니다. 자세한 내용은 제 대답을보십시오. – SergeyS

1

당신이 frames[0] 비트를 필요로 IE에서 어떤 이유를 들어

frames[0].document.getElementById('crmNotifications') 

을보십시오. Xrm 개체를 사용하려는 경우에도 마찬가지입니다.

+0

아, 나는 그것에 대해 모든 것을 잊어 버렸습니다. 그럼에도 불구하고 - 브라우저를 확인하십시오. ** FF **에서도 ** 똑같은 (놓치기) 동작을 얻습니다. * frames *을 사용해야합니다. 내가 잘못 생각했거나 바뀌 었습니까? 그리고 언제...? +1. –

+0

아무 것도 정말로 바뀌지 않았습니다. 자바 스크립트를 실행하고있는 곳과 다른 점이 있습니다 (컨텍스트 문제). – SergeyS

관련 문제