Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 锚定hrefs-Firefox中的innerHTML和C%23(C#)_Javascript_Firefox_Escaping_Innerhtml - Fatal编程技术网

Javascript 锚定hrefs-Firefox中的innerHTML和C%23(C#)

Javascript 锚定hrefs-Firefox中的innerHTML和C%23(C#),javascript,firefox,escaping,innerhtml,Javascript,Firefox,Escaping,Innerhtml,如果将的innerHTML设置为innerHTML='' 看起来实际得到“渲染”的是: <div> <a href="Something/C#">C#</a><br /> </div> 什么是避免这种情况的正确方法,这样链接将保持“Something/C%23” 更新: 我注意到一个奇怪的小东西。如果您使用函数来建立链接。不需要额外的%25转义。奇怪。 前 函数构建链接(tg,nm){ 返回“”; } 试试这个: <a

如果将的innerHTML设置为innerHTML='
'

看起来实际得到“渲染”的是:

<div>
<a href="Something/C#">C#</a><br />
</div> 


什么是避免这种情况的正确方法,这样链接将保持“Something/C%23”

更新
我注意到一个奇怪的小东西。如果您使用函数来建立链接。不需要额外的%25转义。奇怪。

函数构建链接(tg,nm){
返回“
”; }
试试这个:

<a href="Something/C%2523">C#</a><br />

将“
%
”扩展到“
%25
”,您就可以得到想要的。然后将“
%25
”转换回百分比字符,随后的
23
不会重新解释。

尝试以下操作:

<a href="Something/C%2523">C#</a><br />


将“
%
”扩展到“
%25
”,您就可以得到想要的。然后将“
%25
”转换回百分比字符,随后的
23
不会重新解释。

将百分比本身转义,您应该拥有它

innerHTML = '<a href="Something/C%2523">C#</a><br />';
innerHTML='
';
转义百分比本身,您应该拥有它

innerHTML = '<a href="Something/C%2523">C#</a><br />';
innerHTML='
';
值得注意的是,许多浏览器会将指向“
Something/C%23
”的链接呈现为“
Something/C”
”的“友好”URL。使用Firebug或类似工具检查您的
div
,以确保其实际设置不正确

如果是这样,则需要将百分比符号转义为
%25

innerHTML = '<a href="Something/C%2523">C#</a><br />';
innerHTML='
';
值得注意的是,许多浏览器会将指向“
Something/C%23
”的链接呈现为“
Something/C”
”的“友好”URL。使用Firebug或类似工具检查您的
div
,以确保其实际设置不正确

如果是这样,则需要将百分比符号转义为
%25

innerHTML = '<a href="Something/C%2523">C#</a><br />';
innerHTML='
';
看起来实际得到“渲染”的是:


没有。如果您将鼠标悬停在链接上,Firefox会在状态栏中告诉您该链接指向“C”,但它是在撒谎。实际上,单击链接,您将在“C%23”处结束(它将显示在地址栏的右侧)

什么是避免这种情况的正确方法,这样链接将保持“Something/C%23”

你第一次做对了。“某物/C%2523”的编码太多

我注意到一个奇怪的小东西。如果您使用函数来建立链接。不需要额外的%25转义

是否在函数中不会影响它。如果您使用地址栏键入javascript:url作为一种测试机制,那么会对它产生影响,并且可能会让您感到困惑。javascript:URL仍然是URL,在JS解释器查看代码之前,URL中的任何编码都将在一步中撤消。如果使用JS字符串文字转义,则不会遇到以下问题:

javascript:alert(document.body.innerHTML='<a href="Something/C\x2523">C#</a>')
javascript:alert(document.body.innerHTML='')
看起来实际得到“渲染”的是:


没有。如果您将鼠标悬停在链接上,Firefox会在状态栏中告诉您该链接指向“C”,但它是在撒谎。实际上,单击链接,您将在“C%23”处结束(它将显示在地址栏的右侧)

什么是避免这种情况的正确方法,这样链接将保持“Something/C%23”

你第一次做对了。“某物/C%2523”的编码太多

我注意到一个奇怪的小东西。如果您使用函数来建立链接。不需要额外的%25转义

是否在函数中不会影响它。如果您使用地址栏键入javascript:url作为一种测试机制,那么会对它产生影响,并且可能会让您感到困惑。javascript:URL仍然是URL,在JS解释器查看代码之前,URL中的任何编码都将在一步中撤消。如果使用JS字符串文字转义,则不会遇到以下问题:

javascript:alert(document.body.innerHTML='<a href="Something/C\x2523">C#</a>')
javascript:alert(document.body.innerHTML='')

+1。关于萤火虫的好主意。但即使我知道是怎么回事。。。(我通过点击链接就知道了这一点)。Firebug不会帮我修好的对吧?还是我遗漏了什么?谢谢。不,Firebug更像是一种调试辅助工具。有时很难看到JS对文档实际做了什么(因为视图源代码没有反映它),所以DOM检查器非常非常方便。Firebug恰好是我使用过的最好的DOM检查器。+1。关于萤火虫的好主意。但即使我知道是怎么回事。。。(我通过点击链接就知道了这一点)。Firebug不会帮我修好的对吧?还是我遗漏了什么?谢谢。不,Firebug更像是一种调试辅助工具。有时很难看到JS对文档实际做了什么(因为视图源代码没有反映它),所以DOM检查器非常非常方便。Firebug恰好是我使用过的最好的DOM检查器。不加评论的否决票并没有多大用处。如果有不准确的地方,发表评论会有帮助,这样可以纠正。不发表评论的否决票是没有用的。如果有不准确的地方,发表评论会有帮助,这样可以纠正。