首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未公开的SyntaxError:

未公开的SyntaxError:
EN

Stack Overflow用户
提问于 2019-07-10 20:44:35
回答 1查看 47关注 0票数 0

代码应该是一个弹出窗口,要求确认“按ok来确认用户的操作”,但它没有。我完全没有想法了。

代码语言:javascript
运行
复制
function friendToggle(type,user,elem){
var conf = confirm("Press OK to confirm the '"+type+"' action for user 
<?php echo $u; ?>.");
if(conf != true){
    return false;
}
$(elem).innerHTML = 'please wait ...';
var ajax = ajaxObj("POST", "php_parsers/friend_system.php");
ajax.onreadystatechange = function() {
    if(ajaxReturn(ajax) == true) {
        if(ajax.responseText == "friend_request_sent"){
            $(elem).innerHTML = 'OK Friend Request Sent';
        } else if(ajax.responseText == "unfriend_ok"){
            $(elem).innerHTML = '<button onclick="friendToggle(\'friend\',\'<?php echo $u; ?>\',\'friendBtn\')">Request As Friend</button>';
        } else {
            alert(ajax.responseText);
            $(elem).innerHTML = 'Try again later';
        }
    }
}
ajax.send("type="+type+"&user="+user);
}
</script>

PHP代码:

代码语言:javascript
运行
复制
<?php 
$friend_button = '<button disabled>Request As Friend</button>';
$block_button = '<button disabled>Block User</button>';
// LOGIC FOR FRIEND BUTTON
if($isFriend == true){
    $friend_button = '<button onclick="friendToggle(\'unfriend\',\''.$u.'\',\'friendBtn\')">Unfriend</button>';
}
 else if($user_ok == true && $u != $log_username && 
$ownerBlockViewer == false){
    $friend_button = '<button onclick="friendToggle(\'friend\',\''.$u.'\',\'friendBtn\')">Request As Friend</button>';
}
// LOGIC FOR BLOCK BUTTON
if($viewerBlockOwner == true){
    $block_button = '<button onclick="blockToggle(\'unblock\',\''.$u.'\',\'blockBtn\')">Unblock User</button>';
} else if($user_ok == true && $u != $log_username){
    $block_button = '<button onclick="blockToggle(\'block\',\''.$u.'\',\'blockBtn\')">Block User</button>';
}
?> 

打开控制台我看到“未登录的SyntaxError:无效的或意外的令牌”

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-10 21:05:27

控制台问题与您的JavaScript代码的第2&3行有关;

代码语言:javascript
运行
复制
var conf = confirm("Press OK to confirm the '"+type+"' action for user
<?php echo $u; ?>.");

您有一个多行字符串,控制台没有将其解释为一个字符串值。为了解决问题,ECMAScript 6 (ES6)引入了模板文字,可以像下面这样使用来处理多行字符串;

代码语言:javascript
运行
复制
var conf = confirm(`Press OK to confirm the '"+type+"' action for user
<?php echo $u; ?>.`);

(即使用倒计时而不是双引号来开始和结束多行字符串)

或者,如果不支持ES6,您可以使用下面这样的好的旧字符串连接;

代码语言:javascript
运行
复制
var conf = confirm("Press OK to confirm the '"+type+"' action for user" +
"<?php echo $u; ?>.");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56978379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档