Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这个Javascript对象代码有什么问题?_Javascript - Fatal编程技术网

这个Javascript对象代码有什么问题?

这个Javascript对象代码有什么问题?,javascript,Javascript,//下载自 这将通过间接暗示方法检查系统上安装的字体。起初,它在我的网页上运行得很好。我添加了更多的编码,现在它已经停止工作了。我已经删除了所有的编码,并将编码恢复到最初的工作状态,但它仍然不工作。我已经尝试过将它复制粘贴到其他页面,但它仍然无法在那里工作。但当我将所有这些代码作为文本发布并在其上运行eval()时,它突然开始工作。我快疯了。有人能解决这个问题吗?在CSS中使用字体回退不是更容易吗?看起来需要大量的JavaScript来完成CSS可以在一行中完成的事情。这是假设它是出于实际目的。

//下载自


这将通过间接暗示方法检查系统上安装的
字体。起初,它在我的网页上运行得很好。我添加了更多的编码,现在它已经停止工作了。我已经删除了所有的编码,并将编码恢复到最初的工作状态,但它仍然不工作。我已经尝试过将它复制粘贴到其他页面,但它仍然无法在那里工作。但当我将所有这些代码作为文本发布并在其上运行
eval()
时,它突然开始工作。我快疯了。有人能解决这个问题吗?

在CSS中使用字体回退不是更容易吗?看起来需要大量的JavaScript来完成CSS可以在一行中完成的事情。这是假设它是出于实际目的。

好吧,我偶然发现了真正的问题。当我在javascript中使用DOM引用时,这种情况一直发生在我身上。这是一件很小的事情,很容易被忽视,但这正是它让人更加恼火和难以捕捉的原因


我在头部部分,在body标签之前使用了这个代码。从那里剪切并在主体代码解决问题后粘贴。原因似乎是,由于此代码试图在主体部分内创建一个跨度对象,因此在主体标记之前使用此代码将导致逻辑错误,因为此时主体对象不存在。将代码重新定位到正文部分之外解决了问题,代码现在运行顺利。感谢所有贡献者。

我如何使用CSS检查系统上安装的字体?请详细说明。你不需要检查。正在执行字体系列:“mycustomfont”,Arial
将解决您的问题,因为如果用户计算机上未安装“mycustomfont”,将使用arial。一个很好的解决方法是使用webfonts。没关系。我的问题现在解决了。详情如下。
var Detector = function() {
    var baseFonts = ['monospace', 'sans-serif', 'serif'];
    var testString = "mmmmmmmmmmlli";

    var testSize = '72px';
    var h = document.getElementsByTagName("body")[0];

    // create a SPAN in the document to get the width of the text we use to test
    var s = document.createElement("span");
    s.style.fontSize = testSize;
    s.innerHTML = testString;
    var defaultWidth = {};
    var defaultHeight = {};
    for (var index in baseFonts) {
        //get the default width for the three base fonts
        s.style.fontFamily = baseFonts[index];
        h.appendChild(s);
        defaultWidth[baseFonts[index]] = s.offsetWidth; //width for the default font
        defaultHeight[baseFonts[index]] = s.offsetHeight; //height for the defualt font
        h.removeChild(s);
    }

    function detect(font) {
        var detected = false;
        for (var index in baseFonts) {
            s.style.fontFamily = font + ',' + baseFonts[index]; // name of the font along with the base font for fallback.
            h.appendChild(s);
            var matched = (s.offsetWidth != defaultWidth[baseFonts[index]] || s.offsetHeight != defaultHeight[baseFonts[index]]);
            h.removeChild(s);
            detected = detected || matched;
        }
        return detected;
    }

    this.detect = detect;
};
var d = new Detector();
alert(d.detect("Times"));