2009-04-17 3 views
19

먼저 JQuery의 $ (document) .ready() 메소드 내부에서 document.write()를 사용하는 방법이 있습니까? 있다면, 그게 내 문제를 해결할 것입니다 때문에 나를 단서주십시오.

그렇지 않으면 내가 가지고 일하는 사람의 코드가 있습니다. 캐치는 어떤 식 으로든 코드를 변경하는 것이 허용되지 않는다는 것입니다.

document.write('<img src=\"/image/1.jpg\" alt=\"Second image for id 1\">') 

스크립트 :

document.write('<script src=\"http://myurl.com/page.aspx?id=1\"></script>'); 

스크립트 태그는 일련의 테스트를 수행하고 다음과 같이 뭔가를 뱉어 aspx 페이지를 참조한다 : 작동하지 않는 부분은 다음과 같이 보입니다 실제로 진행되고있는 것의 예일뿐입니다. 문제는 여기에 초기 스크립트에 document.write()가 있고 첫 번째 스크립트에 추가되는 스크립트의 document.write()가 있는데 어떻게 든이 작업을 JQuery의 $ (document) .ready() 함수를 호출 할 수 있습니다.

나는 무엇을해야할지 모르겠다. 도움?

답변

41

요구 사항이 인 경우, 문서를 실제로 작성하지 않아도 document.write를 사용할 수 없습니다.

var phbRequirement = ""; 

$(function() { 
    document.write = function(evil) { 
    phbRequirement += evil; 
    } 
    document.write("Haha, you can't change my code!"); 
    $('body').append(phbRequirement); 

}); 

당신이 그것을하기 전에 document.write를 함수를 덮어 확인하십시오 : 당신이 코드를 변경하지에 정말 구부러진 경우, 당신은 너무 압정 나중에 결과에서와 같이 document.write를()의 기능을 대체 할 수 있습니다 사용. 당신은 언제든지 그것을 할 수 있습니다.

다른 답변은 지루합니다.이 것은 재미 있지만 주어진 요구 사항을 충족시키기 위해 잘못된 방식으로 처리하고 있습니다.

+0

약간의 조정을 통해이 방법을 사용하여 문제를 해결할 수있었습니다. 많은 감사합니다. 당신은 나를 이것에 많은 시간을 낭비하지 않게했습니다! – Kappers

3

jQuery는 document.write를 대신 할 준비가되어 있습니다. append 메소드 만 사용하면됩니다.

jQuery('<img src=""/>').appendTo('body'); 

이것은 상당히 자명합니다. 그러나 간단하게, 당신은 당신이 원하는 html로 대체 할 수 있습니다. appendTo 메소드의 태그 이름은 html을 추가 할 태그의 이름입니다. 그게 전부 야.

3

picardo의 대답은 작동하지만이 나를 위해 더 직관적입니다 :

$("body").append('<img src=\"/image/1.jpg\" alt=\"Second image for id 1\">'); 

또한, document.write를()에 삽입되는 스크립트의 경우, jQuery's getScript() function

6

picardo이있다 체크 아웃 접근 방식을 사용했을 것입니다. 개념을 확장하려면 읽기를 수행하십시오

$('<script/>') 
    .attr('src', 'http://myurl.com/page.aspx?id=1') 
    .appendTo('body'); 

대체 스타일 :

var imgnode = $('<img alt="Second image for id 1"/>') 
    .attr('src', "image1.jpg"); 

$('#id1').append(imgnode); 

는 동적 속성을 설정 attr 방법을 사용하십시오. 특수 기호를 그런 식으로 벗어날 필요가 없습니다.

또한 동적으로 생성되는 스크립트 태그의 효과에 대해 확신하지 못합니다. 나는 결코 그것을 시도하지 않았다. 하지만 클라이언트 측 스크립트가 포함되거나 참조 될 것으로 예상됩니다. 내 가정은 page.aspx이 반환 할 것입니다. 귀하의 질문은 당신이 무엇을하려고하는지에 대해 다소 모호합니다.

관련 문제