0

我正在使用 Code.org 的 App Lab 制作聊天室,聊天消息使用 innerHTML() 函数显示。

但是,似乎没有办法获取对象的内部 HTML。

我尝试将 HTML 分配给一个变量,例如html,当html更新时,chatArea 的内部 HTML 也会更新:

var html;
onRecordEvent("Messages", {}, function (rec) {
  html = html + "<div style='background: white; border-radius: 5px; padding: 10px'><div><b>" + rec.username + "</b></div><div>" + rec.message + "</div></div>";
  innerHTML("chatArea", html);
});

不过这要求chatArea一开始是空的,否则第一次html编辑就会被清空。

有什么方法可以获取对象的innerHTML,因为document它被禁用了?

4

1 回答 1

0

我可以看到这样做的唯一方法是使用 tampermonkey 或一些脚本从实际源中获取它。

我也没有看到任何关于获取 html 的内容,所以我很抱歉。您也可以将消息发送到没有 html 的文本区域。

有点偏离轨道,您可以在每次发送新聊天时创建一个记录,然后经常循环浏览聊天记录以查看应该添加哪些新聊天。这是我经常用于 Dungeon Destiny 游戏的聊天屏幕的一小段代码。

//chat info
go("goChat", "warnChat");
go("acceptWarn", "chatt");
go("backChat", "home");
 

sayCS('home', 'announcements');
sayCS('warnChat', 'warnTxt');
sayCS('tosLog', 'tosLogTxt');
sayCS('tos', 'tosTxt');

function sayCS(scr, text){
  onEvent(scr, "keydown", function(event){
    if(event.key=='Alt'){
      playSpeech(getText(text), "female", "English (UK)");
    }
  });
}

onEvent("chatt", "keydown", function(event){
  if(event.key=="Enter"){
    if (getText("setMessage")==''||null) {
      setProperty("setMessage", "placeholder", "Please Type Something Before You Send It");
      setTimeout(function() {
        setProperty("setMessage", "placeholder", "Type A Message Here");
      }, 2000);
    } else if(getText("setMessage")!=''||null) {
        if(username != '' ||null){
          createRecord("chat", {from: username, message:(getText("setMessage"))}, function(){});
        } else if(username == '' ||null){
            createRecord("chat", {from: username, message:(getText("setMessage"))}, function(){});
        }
    }
    setText("setMessage", "");
  }
});

var messages;
function setChat() {
  messages=[];
  readRecords("chat", {}, function(records) {
    for (var i =0; i < records.length; i++) {
      if(!records[i].message.includes("fuck")){
        appendItem(messages,(records[i]).from+ ": "+(records[i]).message);
      }
      }
    messages.reverse();
    setText("chat", messages.join("\n"));
  });
}
于 2021-05-05T04:40:35.693 回答