Javascript 逃逸撇号不起作用
我发现了一些像这样的问题,但不幸的是,没有一个解决方案解决了我的问题 下面是我正在做的事情(也尝试了Javascript 逃逸撇号不起作用,javascript,php,replace,Javascript,Php,Replace,我发现了一些像这样的问题,但不幸的是,没有一个解决方案解决了我的问题 下面是我正在做的事情(也尝试了json\u encode。也不起作用) PHP $head="<div id='headx'>".htmlspecialchars($headu)."<input type='submit' id='edit_head' value='Edit' onclick='edit_title9(this.id,\"".htmlspecialchars($headu,ENT_QUOTE
json\u encode
。也不起作用)
PHP
$head="<div id='headx'>".htmlspecialchars($headu)."<input type='submit' id='edit_head' value='Edit' onclick='edit_title9(this.id,\"".htmlspecialchars($headu,ENT_QUOTES)."\")'></div>
在文本字段中为他很好
给出他很好
为什么会发生这种情况?我怎样才能消除这种情况?运行一个快速测试,对我有效的方法是将替换值更改为html实体。例:
var val1=va1.replace(/'/g,"'");
字符串(在设置值之前)将显示html实体,但输入的值将是解码实体。更改
。替换以替换为值\\\'
。您可能需要双重转义替换值。或者更好的做法是,设置innerHTML,并在下一行getElementById('theID')。value=val1
不带替换。或者简单地使用DOM调用。\\\'
不起作用。给我'he\',其余的被删除。我需要这样做,这可能无法使用getElementById('theID')。value=val1
。这是我对文本字段document.getElementById(divid).innerHTML=“”
我的第二条注释的意思是,在您对divid
执行innerHTML之后,输入元素现在位于文档中,您可以使用document.getElementById()找到它并设置它的值。这只是一种方式。您还可以替换为html实体,即&apos
(或&35; 39;
,相同的东西)类似于。替换(/'/,'apos;')代码>哪一个有效。做一个快速测试对我来说很有效。
va1.replace(/'/g,"\A");
var val1=va1.replace(/'/g,"'");