调整文本大小时的Javascript安全性错误1000

时间:2009-07-30 11:42:30

标签: javascript

我有一个改变字体大小的函数:

// change the font size of the document
function changeSize(fontSize) {
    var sheets = document.styleSheets; // Array of all stylesheets

    for(var i=0; i < sheets.length; i++) { // For each stylesheet
        var sheet = sheets[i];

        // alert( sheets[i].title );

        if(sheet.title == 'textSize') { // find the one called 'textSize'
            // alert( "hello!" );
            var rules = sheet.cssRules || sheet.rules; // Array of rules
            var rule = rules[0]; // The first rule

            // Should only be one rule, and it should be a one line font-size declaration
            if(rules.length == 1 && rule.selectorText.match(/body/i) && rule.style.fontSize) {
                rule.style.fontSize = fontSize;
                return true;
            }
            else return false; // This is a bad stylesheet, return false
        }
    }

    return false; // Haven't found the stylesheet - return false
    }

如果它查找的样式表与该函数所在的页面位于同一目录中,但是如果它位于单独的目录中,则可行。 ../js/js.js而不是./js.js - 它会抛出以下错误:

Security error" code: "1000

知道我如何解决这个问题吗?
我不太了解javascript,我希望它不是一个简单的“不允许”的情况,但如果是这样的话,有什么明智的选择呢?

由于

2 个答案:

答案 0 :(得分:3)

错误1000通常意味着您正在尝试更改DOM中不允许的内容。您似乎只在与页面相同的目录中操作样式表 - 因此它可能是一个安全问题。有问题的CSS文件如何引用 - 绝对路径,相对路径?

答案 1 :(得分:1)

注意:

安全错误“代码:”1000也是由Firefox的Skype扩展引起的。我不知道其他浏览器是否有Skype插件,但我们确信Firefox的Skype扩展会导致很多问题,尤其是在使用JavaScript动态更改样式的网站中。

抱歉英语。