我有一个Javascript函数(名为insert_formatText),它将文本插入到指定的textarea中。该函数有4个参数: - opentag(开放标签) - closetag(关闭标签) - formid(表单的id-attribute值) - elementid(textarea的id-attribute值)
除了将opentag设置为“”“并将closetag设置为”“”之外,我的功能非常有效。在那种情况下,它只是打破了。
<a href="javascript:;" onclick="insert_formatText('"""', '"""', 'foo', 'bar');">INSERT TRIPLE-QUOTES</a>
我实际上使用PHP来循环包含opentag和closetag值的数组作为键=&gt;价值对。在循环中,我将这些值传递给函数:
function editorButton($pre, $suf, $fid, $eid, $label){
$str = <<<EOT
<a href="javascript:;" onclick="insert_formatText('$pre', '$suf', '$fid', '$eid');">$label</a>
EOT;
return $str;
}
所以我的问题是:无论如何要让这个用于双引号而不需要太多改变?或者我是否必须找到一种不同的方法来生成这些按钮?
答案 0 :(得分:1)
您可以使用反斜杠以这种方式转义引号:
<a href="javascript:;" onclick="insert_formatText('\"\"\"', '\"\"\"', 'foo', 'bar');">INSERT TRIPLE-QUOTES</a>
答案 1 :(得分:0)
嗯,你在一个标签内,你打开一个字符串为“。所以你需要逃脱
<a href="javascript:;"
onclick="insert_formatText('\"\"\"', '\"\"\"', 'foo', 'bar');"
>INSERT TRIPLE- QUOTES</a>
或者相反,你可以试试这个
<a href="" onclick='insert_formatText("\"\"\"", "\"\"\"" "foo", "bar");'>INSERT TRIPLE- QUOTES</a>
答案 2 :(得分:0)
你必须添加斜杠:
function editorButton($pre, $suf, $fid, $eid, $label){
$pre = addslashes($pre);
$suf = addslashes($suf);
$str = <<<EOT
<a href="javascript:;" onclick="insert_formatText('$pre', '$suf', '$fid', '$eid');">$label</a>
EOT;
return $str;
}
然后它会让你:
<a href="javascript:;" onclick="insert_formatText('\"\"\"', '\"\"\"', 'foo', 'bar');">INSERT TRIPLE-QUOTES</a>
答案 3 :(得分:0)
您应该将引号编码为html中的实体。即。
<a href="javascript:;" onclick="insert_formatText('"""', '"""', 'foo', 'bar');">INSERT TRIPLE-QUOTES</a>
您可以使用PHP函数htmlentities。