Chrome vs Firefox Javascript行为
这是“数据:”URI,请将其加载到浏览器中Chrome vs Firefox Javascript行为,javascript,google-chrome,firefox,alert,Javascript,Google Chrome,Firefox,Alert,这是“数据:”URI,请将其加载到浏览器中 data:text/html,<script>alert("#")</script> data:text/html,警报(“#”) 我会在Chrome中执行alert(),但不会在Firefox中执行。 Firefox删除“#”字符和以下所有字符。 如何使FF发出警报(“#”) Update:我理解“*”片段部分,但问题更像“为什么Chrome忽略了“片段”的情况,并认为它是一个正常的字符,当FF没有?” < P> A >
data:text/html,<script>alert("#")</script>
data:text/html,警报(“#”)
我会在Chrome中执行alert(),但不会在Firefox中执行。
Firefox删除“#”字符和以下所有字符。
如何使FF发出警报(“#”)
Update:我理解“*”片段部分,但问题更像“为什么Chrome忽略了“片段”的情况,并认为它是一个正常的字符,当FF没有?”
< P> A > <代码> <代码>在URL中有特殊含义(它指示片段部分的开始)。您必须将其编码为%23
才能将其作为数据包含。A#
在URL中具有特殊意义(它指示片段部分的开始)。必须将其编码为%23
才能将其作为数据包含。必须对数据URI的数据部分进行编码,不允许将其编码为文字字符。从
数据,用逗号(,
)与前面的部分隔开。数据是以字符表示的八位字节序列。数据URI中允许的字符是现代英语字母表中小写和大写字母的ASCII字符,以及阿拉伯数字。由任何其他字符表示的八位字节必须进行百分比编码,如“%26
”中的“与”(&
)符号
…引用
因此,您的数据URI应该是:
data:text/html,%3Cscript%3Ealert(%22%23%22)%3C%2Fscript%3E
…可在Chrome和Firefox中使用:
必须对数据URI的数据部分进行编码,不允许将#
作为文字字符。从
数据,用逗号(,
)与前面的部分隔开。数据是以字符表示的八位字节序列。数据URI中允许的字符是现代英语字母表中小写和大写字母的ASCII字符,以及阿拉伯数字。由任何其他字符表示的八位字节必须进行百分比编码,如“%26
”中的“与”(&
)符号
…引用
因此,您的数据URI应该是:
data:text/html,%3Cscript%3Ealert(%22%23%22)%3C%2Fscript%3E
…可在Chrome和Firefox中使用: