【发布时间】:2016-10-27 04:30:59
【问题描述】:
我正在尝试用链接替换网页上的文本。当我尝试这个时,它只是用标签而不是链接替换文本。例如,此代码将“河流”替换为:
<a href="http://www.cnn.com">asdf</a>
这是我目前所拥有的:
function handleText(textNode)
{
var v = textNode.nodeValue;
v = v.replace(/\briver\b/g, '<a href="http://www.cnn.com">asdf</a>');
textNode.nodeValue = v;
}
【问题讨论】:
-
您必须分配给 textnode 父节点的
innerHTML。 -
textNode实际上是一个 TEXT 节点吗?如果是这样,则文本节点没有子节点,并且您不能仅通过分配您尝试这样做的方式来创建<a>。您正试图将其视为正常元素。我们是假设您正在传递一个实际的文本节点(即textNode.nodeName === '#text'),还是您希望将任何类型的元素传递给handleText()?
标签: javascript google-chrome-extension