打开基于搜索查询的 URL,无需使用 php“?q=(myTerm)”,而是使用简单的“/(myTerm)”

2023-12-02

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

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

在本页给我http://syndex.me/tagged?q=yellow但如果我改变/tagged to /search(tumblr 搜索表单的默认状态)它实际上做了正确的事情,并给出了一个 url 的效果http://syndex.me/search/yellow.

这一切只是因为,tumblrs 搜索实际上被破坏了。这是正确的。一家价值 8 亿美元的公司没有可行的搜索功能。问题是如果你去http://syndex.me/tagged/yellow它实际上works!。所以我只是想破解服务并切换/search to 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)".

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

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

  • No onsubmit事件处理程序。
  • 因为onsubmit未指定事件处理程序,HTML 表单将为由浏览器提交(一个虚构的onsubmit处理程序将等于return true.
  • The action URL is defined to be /tagged,这意味着主机根目录下名为“tagged”的文件。在这种情况下:http://syndex.me/tagged?q=搜索术语. (q=..是来自名为的输入元素的结果q).
    当你改变时action to /tagged/代替/tagged,提交的表单将请求以下页面:http://syndex.me/tagged/?q=搜索术语

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

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

明白了吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

打开基于搜索查询的 URL,无需使用 php“?q=(myTerm)”,而是使用简单的“/(myTerm)” 的相关文章

  • 仅在首页加载时使用 cookie 加载 colorbox

    我尝试了来自网络的参考代码 仅在页面加载时加载特定元素一次 这是示例代码
  • 向特定客户端发送消息以及消息发送用户

    我是 SignalR 的初学者 我创建了一个基于 SignalR 的基本聊天应用程序 我面临的问题是我想向特定客户端以及发送消息的用户发送消息 这个怎么做 我知道要向特定客户端发送消息 我们可以这样做 Clients Client Cont
  • 当数据验证失败时保留表单字段中的值

    我在弄清楚验证失败时如何保留用户数据时遇到问题 我对 PHP 有点陌生 所以我的逻辑可能会犯一些巨大的错误 目前 如果验证失败 所有字段都会被清除 并且 Post 数据也会消失 这是一些代码 假设用户输入无效电子邮件 我希望保留 名称 字段
  • 使用 jquery 在菜单中突出显示当前 url

    我有一个菜单 但我想突出显示当前与 jquery 的链接 var loc window location var lochref topNavigation li a attr href if lochref loc topNavigati
  • 暂时禁用提交按钮

    我有一个将大文件上传到服务器的表单 像这样的事情
  • jquery中文本区域自动调整大小

    我怎样才能做一个
  • Jquery:选择器找不到类?

    我正在尝试推进 Jquery autcomplete 功能 我希望 Jquery 自动完成在表中创建新行 到目前为止 这有效 但我希望 Jquery 添加一个删除按钮 因此用户可以删除他添加的项目之一 document ready func
  • CDATA 真的有必要吗?

    我经常使用内联 Javascript 通常是在我制作的 WordPress 主题中 我没有听说过将内联 Javascript 包装在 直到几个月前 几年来我一直在以相当的能力水平做这些事情 我用谷歌搜索了一下 听说人们使用它是因为他们的 J
  • 在 javascript/jquery 中将光标更改为等待

    当调用函数时 如何让光标更改为此加载图标以及如何将其更改回 javascript jquery 中的普通光标 在你的 jQuery 中使用 body css cursor progress 然后又恢复正常 body css cursor d
  • 在一个提交按钮中的新窗口中打开 URL 的两个表单操作?

    是否可以将两个表单操作放在一个提交按钮中 用户将能够选择两个单选按钮 每个表单操作将同时在新窗口中打开 URL 我不知道该怎么做 而且我在编码方面没有太多知识 这段代码不是我的 我只是想修改一下 这是代码
  • Jquery 组合 SlideUp/Down 并单击

    我创建了两个脚本 其中一个具有向上滑动和向下滑动命令 这些命令在页面加载时作用于计时器 第二个是单击事件 其中单击链接时执行向上 向下滑动命令 这两个脚本都是单独工作的 但我无法让它们一起工作 这是定时向上 向下滑动脚本 document
  • 删除某个类之后的所有类

    我有一个 lt div id thisdiv class class1 class2 class3 class4 class5 gt text lt div gt 我需要能够使用 jQuery 删除 class3 之后的所有类 就像是 th
  • 如何监听 jQuery AJAX 请求?

    以下两种实现 ajaxRequest 1 2 的方法应该是等效的 话说回来 为什么验证回调已执行的单元测试 3 在 1 中成功而在 2 中失败 我应该如何重写测试 3 来监视 2 中的成功回调 如果我尝试stub jQuery ajax使用
  • 如何以编程方式处理 JqGrid 事件?

    我正在使用JqG rid 的 ASP NET 包装器 http www trirand net demoaspnet aspx 我想以编程方式连接一些网格的处理程序events http www trirand com jqgridwiki
  • 如何使用 JQuery 动态排序

    如果我有一个下拉列表和一个列表框 有没有办法使用 JQuery 根据下拉列表对列表框进行排序 举个例子会很有帮助 这会改变下拉菜单中的顺序 您必须根据自己的标准设置顺序
  • 使用 JQuery 更改元素的顺序

    有人知道我做错了什么吗 我正在尝试更改某些图像的显示顺序 我希望每次按下按钮时图像都会向右 向左移动一个位置 这是我尝试过的 但没有运气 任何帮助或见解将不胜感激 rightShift click function img hide var
  • 如何判断 jquery 对话框是否打开? [复制]

    这个问题在这里已经有答案了 寻找通用案例解决方案来确定当前是否打开任何 jquery 对话框 有多个 试过 ui dialog content dialog isOpen true ui dialog dialog isOpen true
  • jQuery 获取元素内的鼠标位置

    我希望制作一个控件 用户可以在 div 内单击 然后拖动鼠标 然后松开鼠标以指示他们想要的内容有多长 这是针对日历控件的 因此用户将指示特定事件的时间长度 看起来最好的方法是在父 div 上注册一个 mousedown 事件 而父 div
  • 长轮询会冻结浏览器并阻止其他 ajax 请求

    我正在尝试在我的中实现长轮询Spring MVC Web 应用程序 http static springsource org spring docs 2 0 x reference mvc html但在 4 5 个连续 AJAX 请求后它会
  • jQuery 对象相等

    如何确定两个 jQuery 对象是否相等 我希望能够在数组中搜索特定的 jQuery 对象 inArray jqobj my array 1 alert deviceTypeRoot deviceTypeRoot False alert d

随机推荐