【问题标题】:Copying a search button from one site to another: How does this search button work, and how can I reproduce its action?将搜索按钮从一个站点复制到另一个站点:此搜索按钮如何工作,如何重现其操作?
【发布时间】:2015-03-10 14:35:44
【问题描述】:

我有一个主站点 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 forms search webforms default


    【解决方案1】:

    您不理解的那一行触发了一个 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 文件,因此很难告诉您太多信息更多。

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

    【讨论】:

      猜你喜欢
      • 2015-07-19
      • 2021-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-06
      • 1970-01-01
      • 1970-01-01
      • 2015-01-02
      相关资源
      最近更新 更多