调用javascript函数的权限被拒绝
我正在尝试使用我的wordpress安装。在阅读了关于这个库的内容之后,它似乎是一个很好的解决方案,可以使我的网站更兼容旧版本的IE,尤其是IE8。尝试并仍然支持这样的旧浏览器似乎有些奇怪,但我注意到每月有数百名访问者使用IE6这样的旧浏览器访问我们的网站。我们的大多数用户都是老年人,仍在使用Windows XP。现在来看看问题 我正在使用IE8运行Windows XP虚拟机的副本,我已经按照库代码页上关于如何包含该文件的说明进行了操作。我正在尝试让特定的IE9.js文件正常工作。当我访问IE8中的页面时,我得到了一个错误调用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
权限被拒绝:第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”,客户端无法纠正 最好的方法是使用具有访问权限的
href='//example.com/wp content/themes/vivacity/assets/css/stylesheet.css'
注意,http:
已被删除。我在这里读了一篇文章,IE的某些版本将下载样式表两次。我想知道这是否会引起问题?我需要尝试跟踪这些css文件在添加协议的代码中被调用的位置。这可能需要一段时间@Guillermenascimento我已经将它们转换为绝对URL。我注意到有一些样式表是从google中提取出来的。不确定这是否会影响任何事情。是的,这是我在评论中想到的怀疑。其基本思想是,攻击者可以使用样式表和JavaScript访问它们,作为与外部站点(或者他们自己的站点,访问包含数据的站点,或者其他方式)通信的方法。IE可能会允许样式表,但不允许您在JS中查看它。