JavaScript中的转义字符在PHP Wordpress短代码中运行

Escaping characters in JavaScript run inside of a PHP Wordpress shortcode

本文关键字:代码 运行 Wordpress 转义字符 JavaScript PHP      更新时间:2023-09-26

我遇到了这个奇怪的场景。我正在编写一个执行一些jQuery内容的短代码,特别是解析XML文件(jQuery.parseXML() -这将XML文件转换为jQuery对象)。我想从XML标签&lt中获取文本;字幕。文件>,我尝试这样做:

var captionsFileURL = (JQXML.find("captions''.file")).text();

根据我发现的StackExchange帖子,标签名称中的句号需要转义,因此它不被解释为file类的captions标签(但为什么要双重转义?)。当我在控制台中手动尝试时,这是有效的,但在短代码中使用javascript则不行。然后我尝试转义它:

var captionsFileURL = (JQXML.find("captions'''.file")).text();

…这招奏效了。

对于第一个问题(为什么要双转义?),解释如下:

使用任何元字符(如! " # $ %和 ;'()*+,./:;& lt; => ?@[]^ '{|}~)作为名称的文字部分,它必须用两个反斜杠转义:''。例如,一个id="foo "的元素。,可以使用选择器$("#foo''. Bar ")。

从这里:http://api.jquery.com/category/selectors/

至于为什么需要在上面的选择器中添加额外的(第三个)斜杠,我不知道—可能是在解析中,或者是在一些转换中,在原始字符串中添加了额外的斜杠。