diff --git a/src/live/FuncDanmuEnhance.js b/src/live/FuncDanmuEnhance.js index 4000bc5..279602d 100644 --- a/src/live/FuncDanmuEnhance.js +++ b/src/live/FuncDanmuEnhance.js @@ -136,7 +136,7 @@ class FuncDanmuEnhance { } static sendDanmu_player(danmu) { return new Promise((resolve) => { - Helper.addScriptByText(`bh_sendDanmu(${danmu}, '0x'${this.danmuColorList[this.selectDanmuColor]}, ${this.selectDanmuMode});`).remove(); + Helper.addScriptByText(`bh_sendDanmu('${Helper.escape(danmu)}', '0x${this.danmuColorList[this.selectDanmuColor]}', ${this.selectDanmuMode});`).remove(); resolve(); }); } diff --git a/src/live/Helper.js b/src/live/Helper.js index 0295bce..a742af3 100644 --- a/src/live/Helper.js +++ b/src/live/Helper.js @@ -96,6 +96,9 @@ Helper.format = (template, data) => { } return template; }; +Helper.escape = string => { + return string.replace(/([\\'"&])+?/g, '\\$1'); +}; Helper.localize = {//TODO 重构 去除不必要文本 helper: 'Bilibili助手', enabled: '已启用', diff --git a/src/live_inject.js b/src/live_inject.js index be60f7b..42d079c 100644 --- a/src/live_inject.js +++ b/src/live_inject.js @@ -43,6 +43,6 @@ function bh_getDanmuInfo() { chrome.runtime.sendMessage(extensionID, {command: 'getDanmuInfo', danmuInfo: danmuInfo}); } function bh_sendDanmu(danmu, color, mode) { - window.LivePlayer && window.LivePlayer(danmu, color, mode); + window.LivePlayer && window.LivePlayer.sendMsg(danmu, color, mode); } console.log('%c直播间脚本注入成功~', 'color:#FFF;background-color:#57D2F7;padding:5px;border-radius:7px;line-height:30px;');