1

我正在使用 JavaScript 和 HTA 在本地读取访问数据库 (.mdb) 中的数据,但有一个小问题。我的 JavaScript 代码是这样的:

function miseryBusiness() {
    var box = document.getElementById("lyrics");
    box.innerHTML = "";

    var db = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='paramore.mdb'";
    var adoConn = new ActiveXObject("ADODB.Connection");
    var adoRS = new ActiveXObject("ADODB.Recordset");
    adoConn.Open(db);
    adoRS.Open("SELECT * from 2007_RIOT WHERE track=4", adoConn, 1, 3);

    var lyrics = adoRS.Fields("lyrics").value;
    box.innerText = lyrics;

    adoRS.Close();
    adoConn.Close();
}

我在页面中有一个 id="lyrics" 的 div。函数获取指定单元格的值并将 div 的内部文本更改为该值。

我想要做的是使用innerHTML 而不是innerText。如果我使用内部 HTML,我将单元格的值作为单行获取。我想在每行的末尾添加换行符。也是文本开头的锚点。

如果我从 .txt 文件中获取文本,我会使用

while(!lyrics.AtEndOfStream) {
    box.innerHTML += '<a id="miseryBusiness">' + lyrics.ReadLine() + '<br/>';
}

但这不适用于访问数据库。或者我无法让它工作。有任何想法吗?

我正在使用的 HTA 和 .mdb 文件:link1 link2

4

1 回答 1

1

如果歌词位于带有硬换行符的 Memo 字段中,则行终止符几乎肯定是<cr><lf>,因此请尝试以下操作:

box.innerHTML = '<a id="miseryBusiness">' + lyrics.replace(/\r\n/g, '<br/>');
于 2013-05-07T16:12:09.663 回答