代码之家  ›  专栏  ›  技术社区  ›  KawaiKx

html中前后斜杠的奇怪行为

  •  -1
  • KawaiKx  · 技术社区  · 6 年前

    请考虑一下这个代码。一个反斜杠在img tag中起作用,但在button tag中不起作用:

    <body>
        <h4>This is Me.</h4>
        <img src='C:\Users\foo\Pictures\Camera Roll\pic1.jpg' height="100px" width="100px" id="myImage">
        <button onclick='document.getElementById("myImage").src="C:\Users\foo\Pictures\Camera Roll\pic2.jpg"'>This is you</button>
    
    </body>
    

    当我点击按钮时,什么也没发生。形象不变。

    现在,如果我在按钮标记中用正斜杠更改反斜杠,它就可以工作了!

    <button onclick='document.getElementById("myImage").src="C:/Users/foo/Pictures/Camera Roll/pic2.jpg"'>This is you</button>
    

    弄不清是怎么回事。

    有线索吗?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Quentin    6 年前

    的价值 onclick 属性是JavaScript。在JavaScript中, \ 是转义字符,并表示 你需要逃离它(也就是说。 \\ ).

    既然你没有,你最后得到的字符串是:

    console.log("C:\Users\foo\Pictures\Camera Roll\pic2.jpg");

    的价值 src \ 不是纯HTML中的转义字符。

    而不是逃避 \ / 因为:

    • url使用/作为路径分隔符
    • Web浏览器在处理Windows路径时,仍然使用URL处理代码,因此可以或多或少地互换使用。
        2
  •  2
  •   Akash Srivastav    6 年前

    反斜杠是转义字符,所以放在反斜杠后面的任何内容都会有不同的解释。

    为此,请添加一个额外的反斜杠,以转义要放入地址中的反斜杠,即替换单个反斜杠 \ 双反斜杠 \\