JavaScript:语法错误:参数列表后缺少 ) - 如何在 php 中正确转义 js?

标签 javascript php jquery

我在 php 文件中转义这个 js 函数时遇到了麻烦: 它返回错误: JavaScript:语法错误:参数列表后缺少 ) 代码是这样的:

echo "<a href=\"\" onClick=\"show_confirmation('",$messages['deleting_message'],"', '",$messages['close'],"', 'show_hide('confirmation');', '",$lang['delete'],"', 'redirect_communicator('",$fullurl,"');'); return false;\">Delete</a>";

基本上这是一个有5个参数的js函数,其中一些也是函数,存在问题。像 $messages[] 这样的所有变量都是语言定义的变量。错误显示最后一个参数 - 函数redirect_communicator()

你能告诉我出了什么问题以及如何避免它吗? 谢谢您的建议

编辑: 我也尝试过这个:

<a href="" onClick="show_confirmation('<?php echo $messages['deleting_message'];?>', '<?php echo $messages['close'];?>', show_hide('confirmation');, '<?php echo $lang['delete'];?>', redirect_communicator('sda');) return false;">delete</a>              

仍然是同样的错误..当我添加 json_encode 时,又引发了另一个错误..

最佳答案

像这样混合使用语言总是很难阅读,而且很少是一个好主意。

但是,如果您需要这样做,可以使用 sprintf 来帮助澄清一下:

echo sprintf(
    "<a href=\"\" onClick=\"show_confirmation('%s', '%s', show_hide('confirmation'), '%s', redirect_communicator('%s')); return false;\">Delete</a>",
    $messages['deleting_message'],
    $messages['close'],
    $lang['delete'],
    $fullurl
);

关于JavaScript:语法错误:参数列表后缺少 ) - 如何在 php 中正确转义 js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34206254/

相关文章:

javascript - 使用 jQuery 为 textarea 中的文本着色

javascript - 在通过 AJAX 将数据发送到资源之前验证表单。 Liferay 7.3.5

javascript - 如何通过 socket.io 和滑动图 TableView 作为滑动窗口动态更新图表?

javascript - 在 meteor 应用程序中,为什么一些外部脚本需要放在客户端/子目录中?

php - mysqli_real_escape_string 如何无法防止 SQL 注入(inject)?

java - 以 nobody 用户身份执行时,Jar 写入文件大小为零字节

javascript - 在 JavaScript 事件处理程序中控制第 3 方计时器实现

javascript - ace 编辑器更改事件和设置值

Javascript 无法识别的语法

php - 此代码在 php 中有任何快捷方式吗?