如何将“”“传递给在HTML标签内进行的Javascript函数调用?

时间:2011-03-25 20:28:54

标签: php javascript string

我有一个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;
}

所以我的问题是:无论如何要让这个用于双引号而不需要太多改变?或者我是否必须找到一种不同的方法来生成这些按钮?

4 个答案:

答案 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('&quot;&quot;&quot;', '&quot;&quot;&quot;', 'foo', 'bar');">INSERT TRIPLE-QUOTES</a>

您可以使用PHP函数htmlentities