权限被拒绝调用javascript函数

时间:2014-08-11 16:00:05

标签: javascript css internet-explorer internet-explorer-8

我试图让ie7-js与我的wordpress安装一起工作。在阅读了这个库后,似乎这是一个很好的解决方案,使我的网站更兼容IE的旧版本IE8。尝试并仍然支持这样的旧浏览器似乎很奇怪,但我注意到每月有数百名访问者使用与IE6一样旧的浏览器访问我们的网站。我们的大多数用户都是老年人,仍在使用Windows XP。现在问题。

我正在使用来自modern.ie的IE8运行Windows XP虚拟机的副本。我已按照库代码页上有关如何包含该文件的说明进行操作。我试图让具体的IE9.js文件工作。当我在IE8中访问该页面时,我收到错误

permission denied: line 850 character 37

我已将其追踪到下面的一行:

for (var i = 0, imported; i < styleSheet.imports.length; i++)

来自这个功能:

function getCSSText(styleSheet, path, media, level) {
      var cssText = "";
      if (!level) {
        media = toSimpleMedia(styleSheet.media);
        level = 0;
      }
      if (media === "none") {
        styleSheet.disabled = true;
        return "";
      }
      if (media === "all" || media === self.media) {
        // IE only allows importing style sheets three levels deep.
        // it will crash if you try to access a level below this
        try {
          var canAcess = !!styleSheet.cssText;
        } catch (exe) {}
        if (level < 3 && canAcess) {
          var hrefs = styleSheet.cssText.match(IMPORTS);
          // loop through imported style sheets
          for (var i = 0, imported; i < styleSheet.imports.length; i++) {
            var imported = styleSheet.imports[i];
            var href = styleSheet._href || styleSheet.href;
            imported._href = hrefs[i].replace(TRIM_IMPORTS, "");
            // call this function recursively to get all imported style sheets
            cssText += getCSSText(imported, getPath(href, path), media, level + 1);
          }
        }
        // retrieve inline style or load an external style sheet
        cssText += encode(styleSheet.href ? loadStyleSheet(styleSheet, path) : styleSheet.owningElement._cssText);
        cssText = parseMedia(cssText, self.media);
      }
      return cssText;
    };

在研究是否有其他人遇到过同样的问题时,我确实找到了posts,但没有人能找到解决方法。我一直试图把它排除几个小时,现在只是把头撞到桌子上。有没有人有可能的解决方案或事情要检查?我已经尝试将文件权限更改为777,但这似乎也无效。

1 个答案:

答案 0 :(得分:0)

在客户端使用CORS时,较旧的浏览器存在局限性。

不完全&#34;错误&#34;来自他的javascript,不能被客户端纠正。

最好的方法是使用对CDNs具有权限的CORS

然而仍然可能很难,所以另一种选择是将所有CSS放在子域(或您自己的域)上。

了解CORS: