调用javascript函数的权限被拒绝

调用javascript函数的权限被拒绝,javascript,css,internet-explorer,internet-explorer-8,Javascript,Css,Internet Explorer,Internet Explorer 8,我正在尝试使用我的wordpress安装。在阅读了关于这个库的内容之后,它似乎是一个很好的解决方案,可以使我的网站更兼容旧版本的IE,尤其是IE8。尝试并仍然支持这样的旧浏览器似乎有些奇怪,但我注意到每月有数百名访问者使用IE6这样的旧浏览器访问我们的网站。我们的大多数用户都是老年人,仍在使用Windows XP。现在来看看问题 我正在使用IE8运行Windows XP虚拟机的副本,我已经按照库代码页上关于如何包含该文件的说明进行了操作。我正在尝试让特定的IE9.js文件正常工作。当我访问IE8

我正在尝试使用我的wordpress安装。在阅读了关于这个库的内容之后,它似乎是一个很好的解决方案,可以使我的网站更兼容旧版本的IE,尤其是IE8。尝试并仍然支持这样的旧浏览器似乎有些奇怪,但我注意到每月有数百名访问者使用IE6这样的旧浏览器访问我们的网站。我们的大多数用户都是老年人,仍在使用Windows XP。现在来看看问题

我正在使用IE8运行Windows XP虚拟机的副本,我已经按照库代码页上关于如何包含该文件的说明进行了操作。我正在尝试让特定的IE9.js文件正常工作。当我访问IE8中的页面时,我得到了一个错误

权限被拒绝:第850行字符37

我已经追踪到下面这一行:

for(var i=0,已导入;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;
    };
函数getCSSText(样式表、路径、媒体、级别){ var cssText=“”; 如果(!级别){ media=toSimpleMedia(styleSheet.media); 级别=0; } 如果(媒体=“无”){ styleSheet.disabled=true; 返回“”; } 如果(媒体==“所有”| |媒体===自媒体){ //IE只允许导入三个层次的样式表。 //如果您尝试访问低于此级别的级别,它将崩溃 试一试{ var canaccess=!!styleSheet.cssText; }catch(exe){} 如果(级别<3&&C访问){ var hrefs=styleSheet.cssText.match(导入); //循环浏览导入的样式表 for(var i=0,已导入;i
在研究是否有其他人也有同样的问题时,我确实发现了,但没有人有解决办法。几个小时来我一直在想办法解决这个问题,结果脑袋撞到了桌子上。有没有人有可能的解决方案或事情要下一步检查?我已尝试将文件权限更改为777,但这似乎也不起作用。

较旧的浏览器在客户端使用CORS时有限制

他的javascript不是一个“bug”,客户端无法纠正

最好的方法是使用具有访问权限的

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

了解CORS:


您可能已经考虑到了这一点,但访问某些*.css文件时似乎存在权限问题。您的页面URL的样式是什么,以及您导入的样式表的URL是什么?(不会单击它,但URL中的某些较大差异可能会导致问题)文件夹权限不会直接影响前端脚本的性能,因此这没有任何意义。也许你的问题是烫发“框架”或“url”。我注意到头部的一些URL是使用绝对路径调用的,而其他URL包含href链接,如so
href='//example.com/wp content/themes/vivacity/assets/css/stylesheet.css'
注意,
http:
已被删除。我在这里读了一篇文章,IE的某些版本将下载样式表两次。我想知道这是否会引起问题?我需要尝试跟踪这些css文件在添加协议的代码中被调用的位置。这可能需要一段时间@Guillermenascimento我已经将它们转换为绝对URL。我注意到有一些样式表是从google中提取出来的。不确定这是否会影响任何事情。是的,这是我在评论中想到的怀疑。其基本思想是,攻击者可以使用样式表和JavaScript访问它们,作为与外部站点(或者他们自己的站点,访问包含数据的站点,或者其他方式)通信的方法。IE可能会允许样式表,但不允许您在JS中查看它。