bugfix> javascript > 投稿

前のページに戻るために以下のコードを試していますが、IEとChromeでは動作しませんが、Edgeでは正常に動作します。

<a href="javascript:history.go(-1)" class="back" >
            <asp:Label ID="backLabel" runat="server" Text="Back" meta:resourcekey="backLabelResource1" />
        </a>

また、私が読んだいくつかのスレッドごとにこれを試してみました

<a href="javascript:void(0);" onclick="history.back(); return false;" class="back" >
            <asp:Label ID="backLabel" runat="server" Text="Back" meta:resourcekey="backLabelResource1" />
        </a>

それでも同じ結果。 何か案は?

回答 2 件
  • history.go に問題はありません  ChromeとIEの両方がサポートしているためです。このコードは機能します:

    document.getElementById("mylink").addEventListener("click", function() {
        alert("Hello world!")
        // Or alternatively:
        //history.go(-1);
    });
    
    
    <a href="javascript:history.go(-1)">Navigate 1 page backwards</a>
    <br /><br />
    <a href="javascript:alert('Hello World!')">Announce "Hello World"</a>
    <br /><br />
    <a href="javascript:alert('Hello World!')">
      <label>This is a label wrapped in an a tag which is not recommended, and will not work on certain browsers such as IE (and for example in this specific case does not show the pointer cursor in Chrome)</label>
    </a>
    <br /><br />
    <label>
    <a href="javascript:void(0)" id="mylink">
        This is correct practice. No inline js, and the a tag is in the label tag and not the other way around (which only matters if you want to work with IE as other modern browsers allow this).
    </a>
    </label>
    
    

    上記は、Chrome 66(最新)を使用して動作します。おそらく、ASPがブラウザでinspect要素を使用してレンダリングするものを試してみて、コードの一部が無効かどうかを確認してください。上記のすべてのソリューションが機能するはずです。


    また、インラインjsを使用するのは悪い習慣と見なされます。続きを読む:

    インラインJavaScriptは良いですか、悪いですか?

    インラインCSSとJavaScriptコードがなぜそんなに悪いのか

    Reddit-インラインonclick = "function()"がこのような悪い習慣と見なされるのはなぜですか?

  • 試してください:

    window.history.back()
    
    

    または

    window.history.forward()
    
    

    参照「歴史の旅」:https://developer.mozilla.org/en-US/docs/Web/API/History_API

あなたの答え