繁体   English   中英

php / javascript / HTML分析器错误,带空格

[英]php/javascript/HTML parser error with white space

我正在尝试将数据从php获取到我的JavaScript中。 我正在使用原始XMLHttpRequest。 效果很好,但是尝试返回包含带有参数的onclick事件的<a>链接时出现解析器错误。 例如 :

在PHP中,我有:

echo "<a href='#' onclick=myfunction('$data')>$data</a><br>";

在JavaScript中我有

xhr.onreadystatechange = function(){

if(xhr.readyState == 4 && xhr.status == 200){
                    document.getElementById("some_id").innerHTML=xhr.responseText;
}

}

但是,谷歌浏览器控制台会在元素“ some_id”的HTML中显示此内容

<a href="#" onclick="myfunction('John" Doe')>John Doe</a>

相反,具有'John Doe' ,我们有'John" Doe'我已经想通了名称之间的空白 ,负责本(即不带空格,结果将是'John Doe'

我该如何纠正? (因为javascript中的双引号关闭了点击,即点击会触发错误)

好吧,让我们看一下渲染为:

<a onclick=myfunction('John Doe')>

对于HTML解析器, onclick属性具有值myfunction('John ,然后是第二个属性Doe')

您还需要确保有效的HTML语法

<a onclick="myfunction('John Doe')">
           ^                      ^

实际上,您需要确保有效的Javascript语法,然后确保Javascript代码不会破坏HTML语法:

printf('<a onclick="%s">', htmlspecialchars(sprintf('myfunction(%s)', json_encode($data))));

试试:json_encode()

echo "<a href='#' onclick=myfunction('".json_encode($data)."')>$data</a><br>";

是啊。 那可能是对的

echo "<a href='#' onclick=\"myfunction('".urlencode($data)."')\" >$data</a>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM