我正在調試我的Web應用程序並且遇到了問題。我只在Google Chrome瀏覽器中遇到這種情況,而我的JavaScript無能爲力讓我無法接受該解決方案。在IE/Firefox中點擊事件觸發,但Chrome瀏覽器正在放棄事件分配
我有一個ASP頁與<asp:Panel>
控制。在面板中,我設置了一個簡單的搜索文本框,並使用<asp:LinkButton>
來啓動搜索。用戶輸入他們的搜索文本,並且應該能夠輸入(對於usability sake)並且搜索結果將顯示。這適用於IE,但不適用於FireFox。有一個documented fix我已經應用到我的頁面,並已成功地獲得FireFox的功能。金。
除此之外,該修補程序在谷歌瀏覽器中無法使用!有點可疑,我啓動了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嗎? – 2009-07-10 22:25:18