2012-06-21 1 views
1

modernizr.load() 함수가있는 페이지에로드 및 삽입되는 JS 및 CSS 파일 시퀀스가 ​​있습니다 (yepnope.js). 하지만 몇 가지 HTML 스 니펫을로드하여 스크립트 태그에 넣고 나중에 javascript 코드에서 사용하려고합니다.yepnope/modernizr.load()를 사용하여 HTML 코드 조각로드

HTML 스 니펫은 원격 서버 (예 : domain.com/template/default/tweetlist)에 있지만이 파일을로드하면 즉시 실행되어 오류가 발생합니다. 이 실행을 비활성화 할 수 있습니다 (URL 앞에! noexec 추가). 그러면 오류가 중지되지만 내용이 어디에 있는지 알 수 없습니다. 콜백은 응답 본문을 반환하지 않습니다.

scriptArray.push({ 
    load: "noexec!domain.com/template/default/"+widgetType, 
    callback: function (url, result) { 
     console.log("Template loaded!"); 
     // code to handle response body should go here 
    } 
}) 

이것은 내가 지금까지 가지고있는 코드이며, 나는 그 commentline (5)에 붙어 있습니다.

Btw : 이것은 크로스 도메인 문제가 아닙니다. noexec이 비활성화되면 내용이로드되고 오류가 발생합니다.

+0

+1 나는 그것을 찾을 수 없습니다 ...하지만 내가 발견 한 일 당신의 pastebin paste 은요? : P http://pastebin.com/5GsadhTJ –

답변

0

내 문제에 대한 해결책을 찾았습니다. Modernizt 스크립트가 오류를 발생시키지 않고 콜백에서 새 var를 사용할 수 있도록 자바 스크립트에서 템플릿 파일의 내용을 래핑했습니다.

이것은 (의 일부) PHP 파일입니다

$template = file_get_contents($requestFilepath); 
$template = str_replace("\r","",$template); 
$template = str_replace("\n","",$template); 
$template = str_replace("\t","",$template); 
$template = str_replace("\r\n","",$template); 
$template = str_replace("\"","'",$template); 

echo 'var template = "'.$template.'"'; 

그리고 이것은 자바 스크립트의 일부입니다

$("body").append('<script type="text/html" id="tpl_'+templateName+'">'+template+'</script>');