gpt4 book ai didi

jquery - 打开基于搜索查询的 URL,不使用 php "?q=(myTerm)",而是使用简单的 "/(myTerm)"

转载 作者:行者123 更新时间:2023-12-01 08:20:32 24 4
gpt4 key购买 nike

这让我陷入困境。我显然不明白一些非常基本的东西,我希望有人能够阐明这个问题。

        <form action="/tagged" method="get">
<input type="text" name="q" value="{SearchQuery}"/>
<input type="submit" value="Search"/>
</form>

On this page给我http://syndex.me/tagged?q=yellow但是,如果我将 /tagged 更改为 /search (tumblr 搜索表单的默认状态),它实际上会做正确的事情,并给出一个效果为 http://syndex.me/search/yellow 的 url。 .

这一切都只是因为 tumblrs 搜索实际上被破坏了。这是正确的。一家值(value) 8 亿美元的公司没有可行的搜索功能。问题是如果你去 http://syndex.me/tagged/yellow它实际上有效!。所以我只是想破解该服务并将 /search 切换为 tagged 。很有精神。

我很高兴以任何可能的方式破解它...... jQuery?

非常感谢。

最佳答案

页面的各个部分是搜索功能背后的核心:

JavaScript:

function handleThis(formElm){
window.location="http://syndex.me/tagged/"+formElm.q.value+"";
return false;
}

HTML:

<form onsubmit="return handleThis(this)" >
<input type="text" name="q" value=""/>
</form>

使用onsubmit="return handleThis(this)"将事件监听器绑定(bind)到您的表单。 .

  • onsubmit 当用户按 Enter 键或点击“搜索”按钮时触发。
  • onsubmit 内属性(又名事件处理程序),您会注意到 return handleThis(this) 。此函数(在同一页面定义;向前看)使用 this 调用。关键字作为第一个参数。 this在事件处理程序的上下文中,指的是事件监听器的所有者元素,在本例中 <form> .
    handleThis(formElm) ,你注意到"http://syndex.me/tagged/"+formElm.q.valueformElm.q引用名为 q 的输入元素在表单元素内。 formElem.q.value保存输入元素的值,其中包含搜索关键字。刚刚构建的 URL 被分配给 window.location ,它向 http://syndex.me/tagged/ 发起新请求search_terms
    在那行之后,您会看到 return false 。里面onsubmit事件处理程序,您已经见过return handleThis(this) 。返回值handleThis被传递到onsubmit事件处理程序。因此,该语句等于 onsubmit="return false" 。这意味着表单不再自行提交。
  • action 属性未定义。如前所述,这是不需要的,因为表单未提交到期 return false 。当发生错误时,或者如果用户禁用了 JavaScript,表单将自行提交到 action 中定义的 URL。 。因为action未指定属性,则使用页面的当前 URL,http://syndex.me/在这种情况下。所有命名的表单元素都会添加到请求中,因此最终 URL 将为 http://syndex.me/?q= search_terms

回到你的问题,<form action="/tagged"方法=“获取”>`:

  • onsubmit 事件处理程序。
  • 因为onsubmit未指定事件处理程序,HTML 表单将由浏览器提交(虚构的 onsubmit 处理程序将等于 return true
  • 操作 URL 定义 /tagged ,它转换为主机根目录中名为“tagged”的文件。在这种情况下:http://syndex.me/tagged?q= 搜索术语。 ( q=.. 是名为 q 的输入元素的结果。
    当你改变 action/tagged/而不是/tagged ,提交的表单将请求以下页面:http://syndex.me/tagged/?q= search_terms

当你改变/tagged时至/search ,您的表单提交至http://syndex.me/search?q=... 。从标题中可以看出,此位置重定向到 http://syndex.me/search/... .
此行为可能是使用 .htaccess 中定义的规则来实现的。 :

RewriteEngine On
RewriteRule ^/search\?q=(.*)$ /search/$1 [L,R=301]

明白了吗?

关于jquery - 打开基于搜索查询的 URL,不使用 php "?q=(myTerm)",而是使用简单的 "/(myTerm)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7622181/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com