1. ホーム
  2. javascript

[解決済み] アンカータグの onclick() イベントを、onclick 関数内で 'this' 参照を維持したままプログラムで呼び出すにはどうしたらよいですか?

2023-06-05 18:43:27

質問

以下はうまくいきません...(少なくともFirefoxでは。 document.getElementById('linkid').click() は関数ではありません)

<script type="text/javascript">
    function doOnClick() {
        document.getElementById('linkid').click();
        //Should alert('/testlocation');
    }
</script>
<a id="linkid" href="/testlocation" onclick="alert(this.href);">Testlink</a>

どのように解決するのですか?

あなたは apply のように、その要素のコンテキストでイベントハンドラを指定する必要があります。

var elem = document.getElementById("linkid");
if (typeof elem.onclick == "function") {
    elem.onclick.apply(elem);
}

その他 this は上記のコードが実行されるコンテキストを参照することになります。