2014-02-07 3 views
0

서버 생성 및 일부 html을 만드는 javascript 파일을 사용해야합니다. 그러나 나는 그것이 만드는 HTML에 만족하지 않습니다. CSS의 대부분을 수정했지만 마지막 문제는 hrefs가 잘못된 위치를 가리킨다는 것입니다. 이 HORF를 바꿀 수있는 방법이 있습니까? 원래 호출 후에 스크립팅을 시도했으나 작동하지 않았습니다.더 많은 자바 스크립트로 자바 스크립트로 생성 된 HTML을 편집 할 수 있습니까?

<script type="text/javascript" src="http://widget.seekandfind.com/publications?id=dd15fc98d1a83f5e1bcecf3f378a1269c00de96f"></script> 
<script type="text/javascript"> 
var element = document.getElementsByClassName('saf-links')[1].getElementsByTagName('a')[0]; 
element.setAttribute("href","index.htm"); 
</script> 

주셔서 감사합니다.

답변

1

다른 JS가 DOM에 완전히 쓰여지기 전에 JS가 실행 중일 가능성이 큽니다. (당신이 jQuery를 사용하지 않는 경우 setTimeout() 폐쇄/루프 자신을 루프로 jQuerydoTimeout 플러그인을 사용하여 같은, 또는)

당신은 아마 HTML 요소가 될 준비가 될 때까지 대기하는 리스너를 사용할 필요가 해결되었습니다.

호출 된 스크립트 결과에서 존재해야하는 요소에 대한 테스트를 수행하고 다음에을 사용할 수있게되면이를 수정하십시오.

+0

던져 또는 준비() /로드() ... 던져 – dandavis

+0

@ dandavis : DOM을 준비하고 위젯 스크립트 '로드 된 수 있으므로이 경우에는 onload 수신기를 안정적으로 가질 수 있다고 생각하지 않습니다. 그러나 그것은 여전히 ​​실행 중일 수 있고 약간의 추가 시간 동안 DOM에 비트를 추가 할 수 있습니다. 따라서 DOM을 수정하는 데 많은 처리가 필요한 경우 몇 밀리 초에서 몇 초가 걸릴 수 있습니다. 그런 다음 스크립트가 처리를 완료하면 추가 요소를 수정하려고합니다. – williambq

+0

setTimeout은 너무 낮게 설정하면 다른 코드가 실행되지 않지만 너무 높게 설정하면 페이지로드 후 몇 초가 지나야 링크가 잘못됩니다. 나는 그것을 500으로 설정했고 그것은 나를 위해 일한다. 그러나 나는 그 경험이 다른 사용자들에게는 틀릴 것이라고 걱정한다. – user3285762

관련 문제