【问题标题】:Loading HTML snippets with yepnope/modernizr.load()使用 yepnope/modernizr.load() 加载 HTML 片段
【发布时间】:2012-06-21 07:16:00
【问题描述】:

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

HTML sn-ps 位于远程服务器上(例如: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 被禁用时的错误证明了这一点。

【问题讨论】:

标签: jquery modernizr yepnope


【解决方案1】:

我为我的问题找到了解决方案/破解方法。我将模板文件的内容包装在 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>');

【讨论】:

    猜你喜欢
    • 2011-10-01
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多