yaopian2184 2023-06-14 09:15 采纳率: 0%
浏览 73
已结题

如何在cef中方实现网页文本输入框的历史记录下列表提示功能

如何在cef中方实现网页文本输入框的历史记录下列表提示功能,微信suniums,

  • 写回答

14条回答 默认 最新

  • 开发技术控 2023-06-14 09:37
    关注
    获得1.20元问题酬金

    有帮助的话 采纳一下呦
    在 CEF 中实现网页文本输入框的历史记录下拉列表提示功能,可以采取以下步骤:
    在 C++ 代码中创建一个 CefListValue 对象,用于存储历史记录条目。

    CefRefPtr<CefListValue> history_list = CefListValue::Create();
    

    在用户输入时,使用 JavaScript 代码获取输入框的值,并将其添加到 C++ 中的 CefListValue 对象中。
    js

    let input = document.querySelector('#input');
    input.addEventListener('input', function() {
        window.historyList.AddString(input.value);
    }); 
    
    // C++ 代码中与 JavaScript 交互的函数
    void ClientHandler::AddStringToHistory(const CefString& input) {
        history_list->AddString(input);
    }
    
    

    读取 CefListValue 中的条目,并使用 JavaScript 在输入框下方展示下拉列表。

    let list = '';
    let count = window.historyList.GetSize();
    for (let i = 0; i < count; i++) {
        list += `<option>${window.historyList.GetString(i)}</option>`; 
    }
    document.querySelector('#history-list').innerHTML = list;
    
    // C++ 代码中与 JavaScript 交互的函数  
    void ClientHandler::GetHistoryList(CefRefPtr<CefListValue> list, 
                                       CefRefPtr<CefValue> object) {
        *object = list;  
    }
    
    

    为下拉列表绑定选择事件,当用户选择某条历史记录时,将输入框的值设置为该条历史记录。

    document.querySelector('#history-list').addEventListener('change', function() {
        let value = this.value;
        document.querySelector('#input').value = value;
    });
    
    评论

报告相同问题?

问题事件

  • 系统已结题 6月22日
  • 创建了问题 6月14日

悬赏问题

  • ¥15 关于#python#的问题:在跑ldsc数据整理的时候一直抱这种错误,要么--out识别不了参数,要么--merge-alleles识别不了参数(操作系统-linux)
  • ¥15 PPOCRLabel
  • ¥15 网友们我该怎么办啊,急
  • ¥15 混合键合键合机对准标识
  • ¥100 现在不懂的是如何将当前的相机中的照片,作为纹理贴图,映射到扫描出的模型上
  • ¥15 目标跟踪,计算机视觉
  • ¥15 魔霸ROG7 pro,win11.息屏后会显示黑屏,如图,如何解决?(关键词-重新启动)
  • ¥15 有没有人知道这是哪里出了问题啊?要怎么改呀?
  • ¥200 C++表格文件处理-悬赏
  • ¥15 Windows Server2016本地登录失败