【问题标题】:jQuery highlight search term based on URLjQuery基于URL高亮搜索词
【发布时间】:2011-11-23 16:49:39
【问题描述】:

我正在测试插件“searchHighlight”,以便在搜索关键字时在我们的搜索页面上突出显示搜索词。问题是它只读取引荐 URL,我不知道如何修改它,所以它只读取您所在的当前 URL 而不是引荐。

  1. 我使用主页上的搜索框
  2. 我搜索“玻璃门”
  3. 结果出现在搜索页面上,但没有突出显示
  4. 我点击了包含“玻璃”或“门”字样的产品
  5. 在产品页面上,它突出显示了我搜索的字词('glass' + 'door')

搜索的示例 URL:http://tsqja.deznp.servertrust.com/SearchResults.asp?Search=glass+door&x=0&y=0

从上面我尝试给出的示例中,您可以看到它是基于引用 URL 关键字突出显示的。我希望它使用实际的搜索结果。给定正则表达式,这是我的搜索结果页面:

[/^http:\/\/(tsqja\.)?deznp\.servertrust/i,/Search=([^&]+)/i]

有人知道如何实现吗?最好通过 jQuery 根据上述正则表达式获取突出显示的搜索词?

【问题讨论】:

  • 嗯,虽然没有解决问题,但是获取一个页面的查询结果确实还是蛮容易的。您可以使用location.search 获取网址的当前?something=blah 部分

标签: jquery regex url search highlight


【解决方案1】:

您可以使用keys 配置选项在搜索页面上手动设置突出显示。您可以使用一个小脚本使用正则表达式从 url 获取搜索词,然后将配置传递给 SearchHighlight:

// Get the keys from the URL using a regex
// http://stackoverflow.com/questions/901115/get-query-string-values-in-javascript
...

// Put the keys into the options
var options = {keys: "Glass Door"}
jQuery(document).SearchHighlight(options);

使用keys 选项会完全禁用引荐来源网址检查。

【讨论】:

  • 我已经尝试过了,也许我需要重新访问。我只需要创建一个函数来抓取搜索词并将其放入“键”中。这是正确的吗?
  • 是的,你可以在他们的demo page 看到它是如何工作的(在你找到条款之后)。应该有一些功能可以从page I included in the comments中抓取搜索词。
【解决方案2】:

试试 jQuery 的 SearchHighlight 插件。他们有一个演示页面here

【讨论】:

  • 我一直在使用它,但它只读取推荐。如果我可以修改插件以仅使用我指定的 URL 而不是使用引荐,那将是完美的。
  • 我也发现了这个其他plugin..似乎真的很有趣
  • debug_referrer 选项让我更接近,但同样,搜索结果将出现在搜索页面上。而且我不能将我网站上的每个页面都指定为引荐来源...或者我可以吗?
  • 我不确定您是否可以,无论如何他们只是打算将其用于调试,因此我认为这不是生产的最佳解决方案。试试johannburkard.de/blog/programming/javascript/…
【解决方案3】:

好吧,这又不是最好的解决方案......但你可以使用这个:

if(document.referrer !== location.href) location.reload()

如果当前 url 不是引荐来源,这将重新加载页面。这只会运行一次,前提是 url 在页面加载时不会不断更改。

【讨论】:

    猜你喜欢
    • 2023-03-13
    • 2011-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多