将javascript变量设置为外部标记文件

Setting a javascript variable to an external markdown file

本文关键字:文件 外部 javascript 变量 设置      更新时间:2023-09-26

我有一个很长的降价文件。我还有一个javascript文件,可以在markdown上运行解析器。在我的javascript文件中,我设置了:

var text = "md/markdown.md"

这似乎没有像我希望的那样拉入markdown文件的内容。但是,如果我将markdown文件的内容复制并粘贴到变量中,那么一切都会正常工作。是否有一种方法,我可以设置这个javascript变量拿起这个外部markdown文件的内容?

在web浏览器的上下文中,如果你想让JavaScript从URI中获取数据,那么你通常会使用XMLHttpRequest对象。MDN有一个关于使用XMLHttpRequest的不错的教程。

大多数通用JavaScript库都包括XHR包装器,其中包括兼容性修复(特别是旧的ie)。我喜欢YUI。另一个选择是相对普遍的jQuery。

对于问题中给出的情况没有问题,但要注意同源策略

运行AJAX请求:

var ajaxRequest, text;  
try{
    // Opera 8.0+, Firefox, Safari
    ajaxRequest = new XMLHttpRequest();
} catch (e){
    // Internet Explorer Browsers
    try{
        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try{
            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e){
            // Something went wrong
            alert("Your browser broke!");
            return false;
        }
    }
}
ajaxRequest.onreadystatechange = function(){
    if(ajaxRequest.readyState == 4){
        text = ajaxRequest.responseText;
    }
}

由于安全原因,Javascript不能直接读取本地文件。作为一种替代方法,您可以使用XMLHttpRequest来实现它。请查看stackoverflow上的链接:使用Javascript读取外部文件。此外,HTML5通过文件API规范提供了一种与本地文件交互的标准方式。您可以参考教程:http://www.html5rocks.com/en/tutorials/file/filesystem/