【发布时间】:2010-11-06 19:36:07
【问题描述】:
我正在调试我的 Web 应用程序,但遇到了困难。我只在 Google Chrome 中遇到了一种行为,而我的 javascript 无能使我无法获得解决方案。
我有一个带有<asp:Panel> 控件的ASP 页面。在面板中,我设置了一个简单的搜索文本框,并使用<asp:LinkButton> 启动搜索。用户输入他们的搜索文本,应该能够按回车键(usability sake),搜索结果将显示。这适用于 IE,但不适用于 FireFox。我已将documented fix 应用到我的页面并成功使FireFox 运行。金的。
除了,该修复程序在 Google Chrome 中不起作用!有点可疑,我启动了 Firebug 来调试代码……哦等等……这是 Chrome 唯一的问题。好的,我可以在没有 Firebug 的情况下调试 javascript (sob) - 我启动 Chrome 调试器并逐步执行代码。事实证明,前面提到的 javascript 修复程序正在被 Chrome 删除。
修复脚本在页面加载时运行并修改LinkButton的点击处理程序:
var defaultButton = document.getElementById('<%= lnkSearch.ClientID %>');
if (defaultButton && typeof(defaultButton.click) == 'undefined') {
defaultButton.click = function() {
alert('function fired');
var result = true;
if (defaultButton.click) result = defaultButton.onclick();
if (typeof(result) == 'undefined' || result) {
eval(defaultButton.getAttribute('href'));
}
};
alert(typeof(defaultButton.click) != 'undefined');
}
当在 chrome 调试器中运行页面时,我会进入 function WebForm_FireDefaultButton() 并进入该行:
if (defaultButton && typeof(defaultButton.click) != "undefined") { ... }
由于某种原因,defaultButton.click 变成了"undefined"。我被难住了……我错过了什么?
另外,我没有使用 jQuery,它不是一个可行的解决方案。
生成的 HTML:
<div id="abc_pnlSearchPanel" language="javascript" onkeypress="javascript:return WebForm_FireDefaultButton(event, 'abc_lnkSearch')">
<div class="searchPanel">
<span class="searchText">
Type in stuff to search:
</span>
<span style="float: left;">
<input name="abc:txtSearch" type="text" id="abc_txtSearch" style="width:312px;" />
</span>
<a onclick="this.blur();" id="abc_lnkSearch" class="ButtonLayout" href="javascript:__doPostBack('abc$lnkSearch','')"><span>Search</span></a>
<div style="clear: both"></div>
</div>
</div>
【问题讨论】:
-
我不是一个 ASP 专家,你能发布面板生成的 HTML 吗?
-
我遇到了类似的问题,在 Chrome 中,我可以访问 HTMLAnchorElement (一个 标记),但它没有 click() 函数,即使它应该.
标签: javascript google-chrome debugging dom-events