使用非法字符设置DIV ID名称

set DIV ID name with illegal characters

本文关键字:DIV ID 名称 设置 字符 非法      更新时间:2023-09-26

不幸的是,我需要通过ID转发文件路径。DIV ID="dir/dir2/file.txt"包含非法字符。即使是base64也无法解决。如何解决这个问题?

可以通过在id属性中不使用非法字符来解决这个问题。该属性用于标识,而不是传递数据。如果需要在JavaScript的DOM中存储与元素相关的数据,可以使用HTML5规范中解释的data-*属性。或者只是将它们放在script块内的有用数据结构中,这样您就可以直接访问它。

帮助您修复潜在的问题(导致需要这些id)可能比帮助您在id中编码文件路径更容易和更好。如果你能解释一下潜在问题的背景也许就能找到解决方案?

话虽如此,你的问题的答案可以是:

  1. 这是无法修复的,因为你需要的字符不允许在id。

  2. 还是……考虑一些非常荒谬的替换方案来将特殊路径字符转换为有效的ID字符。您可以使用ID中的冒号字符作为转义字符,以指示后面是unicode数字。为了让您了解我的目标:

D:'directory something'wéírddir'file.txt

将变成类似于下面的ID:

D:2233directory:4455something:2233w:8877:0099rdir:2233file.txt

其中:2233应该是反斜杠的实际数字,等等。此外,由于您必须在ID中以字母开头(在路径中不一定是这样),因此您可以按照惯例始终以某个字母开头(并且在服务器端再次解析ID时忽略该字符)。

注意:我绝对推荐这个解决方案(!!),但是弄清楚它是否可以完成似乎很有趣:D

p。还应该看看这个SO问题