2012-06-21 3 views
1

У меня есть последовательность JS и CSS-файлов, которые загружаются и вставляются на страницу с помощью функции modernizr.load() (это yepnope.js). Но я хочу также загрузить несколько фрагментов HTML, поместить их в теги скриптов и использовать их позже в моем javasscript-коде.Загрузка фрагментов HTML с помощью yepnope/modernizr.load()

Фрагменты HTML расположены на удаленном сервере (например: domain.com/template/default/tweetlist), но когда я загружаю этот файл, он немедленно выполняется, что приводит к ошибке. Я могу отключить это выполнение (добавив! Noexec до URL-адреса), и это останавливает ошибки, но я не знаю, куда идет содержимое. Обратный вызов не возвращает тело ответа.

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 
    } 
}) 

Это код, который у меня был до сих пор, и теперь я застрял в этой комментариях (5).

Btw: Это не проблема с перекрестными областями. Содержимое загружается, а ошибки, когда noexec отключен, вызывают это.

+0

+1 Я не могу найти его ... Но что я действительно находил ваша пастиновая паста: P http://pastebin.com/5GsadhTJ –

ответ

0

Я нашел решение/проблему для моей проблемы. Я завернул содержимое файла шаблона в javascript, чтобы сценарий 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.'"'; 

И это Javascript часть:

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