在javascript中检索HTML元素的文本值,不编码符号

在javascript中检索HTML元素的文本值,不编码符号,javascript,html,encoding,Javascript,Html,Encoding,我试图检索一些HTML元素的文本内容,而不编码符号。我似乎找不到办法来做这件事 例如: 如果我设置URL: http://www.google.com?q=foo&bla=bar&kitties=yay 在锚标记上,并尝试使用innerHTML或使用XMLSerializer.serializeToString()再次检索它。URL(as href)返回为: http://www.google.com?q=foo&bla=bar&kit

我试图检索一些HTML元素的文本内容,而不编码符号。我似乎找不到办法来做这件事

例如: 如果我设置URL:

http://www.google.com?q=foo&bla=bar&kitties=yay 
在锚标记上,并尝试使用innerHTML或使用XMLSerializer.serializeToString()再次检索它。URL(as href)返回为:

http://www.google.com?q=foo&bla=bar&kitties=yay
(第一个未编码的符号与已编码,编码的符号与未改变[仍然编码,而不是双重编码])

我知道浏览器返回的这个编码版本是正确的(ed)HTML,通常不会引起问题,但我有人看了这些URL却不明白&;是&,谁将复制和粘贴URL以验证它。我也不认为对URL进行解码是安全的,因为通常这些URL的末尾都有编码的URL,这些URL应该保持编码状态,而且它们似乎没有双重编码。我想这也是不正确的,因为URL是正确的,而不是“编码”的。我还需要HTML标记部分(例如
),所以不能只获取nodeValue/innerText/textContent/data


收到的任何建议都非常好——我会包括一个JSFIDLE,但即使它对内容进行了编码,也没有什么帮助!对不起,如果这是显而易见的,但我卡住了

如果您给浏览器提供了无效的HTML,那么它将尝试修复它。如果随后将DOM序列化为HTML,它将为您提供固定的HTML。这是无法避免的


OTOH,大多数x-url-form编码的数据解析器将遵循so
?foo=1&;bar=2
将被视为与
foo=1&=&bar=2
相同,因此您不必太担心复制/粘贴。这也意味着您可以只编写
foo=1;bar=2首先,不要担心必须为HTML编码符号。

如果给浏览器提供无效的HTML,它会尝试修复它。如果随后将DOM序列化为HTML,它将为您提供固定的HTML。这是无法避免的


OTOH,大多数x-url-form编码的数据解析器将遵循so
?foo=1&;bar=2
将被视为与
foo=1&=&bar=2
相同,因此您不必太担心复制/粘贴。这也意味着您可以只编写
foo=1;首先,bar=2,不必担心必须为HTML编码符号。

如果您使用JS中的DOM执行此操作,您可以执行以下操作:

var e = document.createElement('span');
e.innerHTML = 'url here';
return e.innerText; // This is your URL

如果使用JS中的DOM执行此操作,可以执行以下操作:

var e = document.createElement('span');
e.innerHTML = 'url here';
return e.innerText; // This is your URL

将URI标记为代码,以阻止Stackoverflow将其视为原始HTML。(我会自己修复它,但我不确定原始值是什么)你能为给你带来问题的链接包含HTML吗?还包括不起作用的Javascript可能会有所帮助。谢谢Quentin-Done:)@Anthony-类似于:var testAnchor=document.createElement('a');testAnchor.href=“”;testAnchor.id='testAnchor';文件.正文.附件(遗嘱人);console.log(document.body.innerHTML);-在js控制台中运行此命令应显示URL中的两个符号都已编码。再一次,很抱歉没有一把合适的js小提琴!将URI标记为代码,以阻止Stackoverflow将其视为原始HTML。(我会自己修复它,但我不确定原始值是什么)你能为给你带来问题的链接包含HTML吗?还包括不起作用的Javascript可能会有所帮助。谢谢Quentin-Done:)@Anthony-类似于:var testAnchor=document.createElement('a');testAnchor.href=“”;testAnchor.id='testAnchor';文件.正文.附件(遗嘱人);console.log(document.body.innerHTML);-在js控制台中运行此命令应显示URL中的两个符号都已编码。再一次,很抱歉没有一把合适的js小提琴!我无法控制输入哪些URL,因此我无法做到这一点(尽管我现在很想这么做!)-我担心您可能会说这只是在更正HTML,但是您可以使用console.xmldir(node)在chrome的js控制台中打印出原始输入,所以我想有可能得到它?我无法控制输入哪些URL,所以我无法做到这一点(尽管我现在很想这么做!)-我担心你可能会说这只是在修改HTML,但是你可以使用console.xmldir(node)在chrome的js控制台中打印出原始输入,所以我想有可能得到它?我想我提到过(有点含糊,抱歉-将更新)我也需要HTML标记部分,它包含innerText条带,所以这对我没有帮助。谢谢你!我想我提到(有点含糊,抱歉-将更新)我也需要HTML标记部分,它包含innerText条带,所以这对我没有帮助。谢谢你!