1

我有一系列 JS 和 CSS 文件,这些文件正在使用modernizr.load() 函数(这是yepnope.js)加载并注入到页面中。但我还想加载一些 HTML 片段,将它们放在脚本标签中,稍后在我的 javascript 代码中使用它们。

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 被禁用时的错误证明了这一点。

4

1 回答 1

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>');
于 2012-06-22T07:11:33.490 回答