我最近发布了一个问题,即使用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;
}
我认为innerText
或innerHTML
或两者的属性在firefox中不起作用。您可以帮助上述代码适用于IE,Chrome,Firefox等。
答案 0 :(得分: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();
假设您要避免在每次通话时检查这两个属性,您只需检查浏览器支持的内容,即:
var textProperty = 'textContent' in document ? 'textContent' : 'innerText';
然后使用如下:
var anc = str1[textProperty];
参考文献:
答案 1 :(得分:0)
textContent
是innerText