gpt4 book ai didi

javascript - 使用维基百科的 opensearch api 时,主题标签符号不会填充数据列表。为什么?

转载 作者:行者123 更新时间:2023-11-28 03:21:28 25 4
gpt4 key购买 nike

$.ajax({
url: "https://en.wikipedia.org/w/api.php",
dataType: "jsonp",
data: {
'action': "opensearch",
'format': "json",
'search': search
},
success: function (data) {
var suggestions = '';
data[1].forEach(d => {
suggestions += `<option value="${d}">`;
});
console.log(data);
$('#searchList').html(suggestions);
console.log(suggestions);
}
});

Difference between hashtag symbol from wikipedia search api and local server

换句话说,数据列表通常可以很好地填充其他字符,包括@或$,但是当使用#时,即使在检查元素时数据列表填充了正确的项目,它也不会下拉并显示建议。

编辑:通过本地主机,我的意思是我将端点更改为我的服务器,这样我就可以看到如果我用主题标签发回选项列表会发生什么。它工作得很好,我注意到我的服务器发送的主题标签与 wiki 的 opensearch 发送的主题标签之间的字体不同。

编辑:搜索变量来自输入框,如下所示 -

<form class="pSearch form-inline" method="post" action="">
<input class="pSearch" type="text" id="searchTerm" name="searchTerms" placeholder="Search" aria-label="Search"
list="searchList" autocomplete="off" spellcheck="true">
<datalist id="searchList"></datalist>

我用 keyup 函数监听输入-

$('#searchTerm').keyup(function (e) {

var search = $(this).val();

然后我将变量搜索发送到 opensearch api-

    $.ajax({...})
}

硬编码主题标签而不是使用变量效果很好 - “#”。我尝试过 JSON.stringify(search),但没有什么区别。

最佳答案

问题是 Wikipedia article titles cannot contain a # character 。显然有些人发挥了创意,转而使用 FULLWIDTH NUMBER SIGN 而是为了规避此限制。

相应地,normal search会发现only a single accurate result for # ,但是Opensearch API您正在使用的似乎会执行一些 unicode 感知的模糊匹配并返回以 开头的页面。 <datalist>但不会考虑这些。

关于javascript - 使用维基百科的 opensearch api 时,主题标签符号不会填充数据列表。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59119928/

25 4 0