我有一系列JS和CSS文件正在使用modernizr.load()函数加载和注入页面(这是yepnope.js)。但我想加载一些HTML代码段,将它们放在脚本标记中,稍后在我的javasscript代码中使用它们。
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
}
})
这是我到目前为止的代码,现在我仍然坚持使用该评论(5)。
顺便说一下:这不是一个跨域问题。内容被加载,noexec被禁用时的错误证明了这一点。
答案 0 :(得分: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>');