将搜索按钮从一个站点复制到另一个站点:此搜索按钮如何工作,以及如何重现其操作

Copying a search button from one site to another: How does this search button work, and how can I reproduce its action?

本文关键字:站点 按钮 搜索 工作 何工作 操作 何重现 另一个 一个 复制      更新时间:2023-09-26

我有一个主网站、mainwebsite.org 和一个使用不同域的子网站,mainwebsite.giftgiving.org 其样式看起来与主网站相同,以便用户不会觉得他们离开了原始网站。

主站点有一个搜索按钮,我需要该搜索按钮才能在辅助站点上工作。但是,我不完全了解搜索按钮的提交功能是如何工作的,所以我不确定如何在辅助站点上使其正常工作。简单地复制 html 不起作用,我认为这是因为我缺少一些 javascript 功能,或者因为提交按钮试图发布到辅助站点上实际上不存在的页面(我在另一个网站上遇到了类似的问题,其中提交按钮提交到"../searchpage.aspx",但该页面仅存在于 www.mainsite.org 上,因此 secondarysite.org/searchpage.aspx 导致"找不到页面")。就像现在一样,我没有收到任何错误,搜索按钮根本没有做任何事情。

这是来自主站点的 HTML:

<div id="ctl00_pnlSearch002" onkeypress="javascript:return WebForm_FireDefaultButton(event, 'ctl00_btnSearch002')">
    <div class="utilities floatRight">
        <ul>
            <li class="searchButton"><input type="image" name="ctl00$btnSearch002" id="ctl00_btnSearch002" src="/images/design002/btn_search.jpg" style="width: 30px; height: 22px; border: none;"></li>
            <li class="search"><input name="ctl00$txtSearch" type="text" id="ctl00_txtSearch" value="Search" onblur="if (value == '') {value = 'Search'}" onfocus="if (value == 'Search') {value =''}"></li>
            <li class="paddingL"><a href="javascript:textResizer.doResize(1)" class="aPlus">A+</a><a href="javascript:textResizer.doResize(-1)" class="aMinus">A-</a></li>
            <li class="textsize paddingL">Text Size</li>
        </ul>
    </div>
</div>

我不明白这条线是如何工作的:

onkeypress="javascript:return WebForm_FireDefaultButton(event, 'ct100_btnSearch002')

如果我能弄清楚搜索按钮调用的位置,我可以通过将搜索按钮放在 action="http://mainwebsite.org/?????" 的表单中来修改辅助站点

你不理解的一行会触发一个 JavaScript 函数,在这种情况下,该函数最终可能会执行回发:WebForm_FireDefaultButton() 对命名元素执行虚拟"单击",在本例中为 "ct100_btnSearch002"。

(这里有该JS函数的源代码副本,尽管您可以轻松地自己反汇编MS的助手JS以查看它:http://www.sentia.com.au/blog/fixing-the-enter-key-in-aspnet-with-jquery)

该按钮很可能在原始页面上执行回发,从而触发"btnSearch002"控件的某些"OnClick"事件。 由于您只显示了生成的 HTML,而不是它来自的原始.aspx文件,或者包含响应该回发的服务器端代码的.aspx.cs文件,因此很难告诉您更多。

但是,您不能简单地将"搜索"按钮从一个站点复制到另一个站点的可能性很大:复制该标记只是复制冰山一角,而忽略了支撑该尖端的其余部分。