0

有没有办法在不使用方法charset: "utf-8"的情况下使用加载方法注入 yepnopeyepnope.injectJs

yepnope({
         load: newResourcesToBeLoaded,
         complete: function() {
                   addNewlyLoadedResources(newResourcesToBeLoaded);
                   completeCallback();
         }
});
4

1 回答 1

0

不容易,但您可以使用过滤器来做到这一点:

yepnope.addFilter(function (resourceObj) {
  if (resourceObj.url.slice(-3) == ".js") {
    resourceObj.attrs = resourceObj.attrs || {};
    resourceObj.attrs["charset"] = "UTF-8";
  }
  return resourceObj;
});

如果您遇到我遇到的任何问题,尽管这无济于事,那么没有 charset 属性的脚本无论如何都应该获取文档的字符集(来自Content-Type标题或<meta charset>标签)。在加载定义了 BOM(字节顺序标记)的 UTF-8 编码文件时,某些浏览器会出现问题,Firefox 对我来说尤其如此。

此外,yepnope.js 显然试图在非 IE/Opera 浏览器中加载脚本作为标签,这是我所有问题的根源,最终让我改用 LABjs。

于 2012-08-16T20:11:06.733 回答