私のWebアプリケーションのデバッグ中で、壁に衝突しました。私はGoogle Chromeでの動作しか経験しておらず、javascriptの不適性は私を解決から守っています。IE/Firefoxでイベントの発生をクリックしますが、Chromeがイベントの割り当てを破棄しています
私は<asp:Panel>
コントロールを持つASPページを持っています。パネル内で、簡単な検索テキストボックスを設定し、<asp:LinkButton>
を使用して検索を開始しました。ユーザーは検索テキストを入力し、Enterキーを押すと(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');
}
そして、私は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を投稿できますか? –
私は同様の問題を抱えています.HTMLAnchorElement(タグ)にアクセスできますが、click()関数はありません。 –