1

我最近发布了关于使用 javascript 从锚标记中提取锚文本的问题。我得到了一个答案。

然而,该代码在 IE 和 Chrome 中运行,但在 Firefox 中不运行。

function extractText(){
    var docId = "10";
    var cId = "13";
    var dName = "ASPIRIN/COUMARIN";
    var anchText = "<a target=\"_blank\" href=hello?docId=" + docId + "&cId=" + cId +">" + dName +"</a>";
    var str1 = document.createElement('str1');      

    str1.innerHTML = anchText;
    var anc = str1.innerText;

    alert(anc);

    return anc;
}

我想或两者的属性innerTextinnerHTMLFirefox 中不起作用。你能帮忙看看上面的代码适用于 IE、Chrome、Firefox 等什么地方吗?

4

2 回答 2

0

Firefox 似乎不支持该innerText属性,更喜欢使用 W3C 的标准textContent

function extractText() {
    var docId = "10";
    var cId = "13";
    var dName = "ASPIRIN/COUMARIN";
    var anchText = "<a target=\"_blank\" href=hello?docId=" + docId + "&cId=" + cId + ">" + dName + "</a>";
    var str1 = document.createElement('str1');

    str1.innerHTML = anchText;
    var anc = (str1.innerText || str1.textContent);

    console.log(anc);

    return anc;
}

extractText();

JS 小提琴演示

假设您想避免在每次调用时检查这两个属性,您可以简单地检查浏览器支持的属性,使用:

var textProperty = 'textContent' in document ? 'textContent' : 'innerText';

然后按如下方式使用它:

var anc = str1[textProperty];

JS 小提琴演示

参考:

于 2013-10-07T14:18:08.443 回答
0

textContentFirefox 中使用的 W3C 标准是innerText

于 2013-10-07T14:19:56.960 回答