私はSharepointでHTMLとjavascriptを使用してカスタム検索ボックスを作ろうとしていますが、Chromeで動作させるようです。私はもともと、このようなコードに直接onclick
とonkeydown
を持っていたJS onclickとonkeydown in chrome
<script type="text/javascript">
function GoSearch()
{
var searchString = document.getElementById('txtSearch').value
window.location.href = '/_layouts/15/osssearchresults.aspx?u=<company web>&k=' + searchString;
}
document.addEventListener('DOMContentLoaded', function() {
var link = document.getElementById('btnSearch');
link.addEventListener('click', function() {
GoSearch();
});
});
document.addEventListener('DOMContentLoaded', function() {
var link = document.getElementById('txtSearch');
link.addEventListener('keydown', function() {
if(event.keyCode == 13) document.getElementById('btnSearch').click();
});
});
</script>
<table width="100%">
<tr>
<td width="100%" align="center">
<input type="text" id="txtSearch" />
<input type="button" id="btnSearch" value="Search" />
</td>
</tr>
</table>
:私のコードがある
<input type="button" value="hledat" onclick="GoSearch();" id="searchBtn">
が、それは仕事をdidntのとグーグルながら、私は、インライン関数とカント契約をクロムこと、発見しましただから私はリスナーを追加する必要があります。だから私はそれらを追加し、何も変わっていない。これはEdgeで動作しますが、Chromeでは単にEnterキーを押しながらページを更新し、編集モードでページを開くことがあります(理由はわかりません)。
何か間違っていますか?私はJSにとって全く新しいので、何かばかしい間違いがあるかどうかは分かりません。
ありがとうございました。
EDIT:アラートを最初のリスナーに追加した後、それがうまくいきます。変更を削除すると機能しなくなります。アラートのコードは次のとおりです。
document.addEventListener('DOMContentLoaded', function() {
var link = document.getElementById('btnSearch');
link.addEventListener('click', function() {
window.alert("here i am")
GoSearch();
});
});
これはどのように可能ですか?
コンソールにエラーが表示されますか(ヒットf12)? 'window.alert(ここで私は") 'をイベントリスナーに追加して、それがトリガされているかどうかを確認するようなデバッグ手順を試しましたか? 'event'と' event.keyCode'が確実に定義されるように、アラートやconsole.logをクリックイベントリスナーに追加しましたか? – scrappedcola
あなたのコードはChrome 48でうまくいきます。インラインイベントハンドラもうまくサポートされています。 –
window.onloadでイベントをラップしてみてください。 –