0

特定のリンクの確認としてポップアップする Jquery-Ui ダイアログを作成しました。ただし、これは削除ページに正しくリダイレ​​クトされません。ただし、クロムでデバッガーを開いてデバッグすると、コードは期待どおりに機能します。

同じ質問を見つけましたが、解決策がうまくいかないようです。ただし、まったく同じシナリオです。ここで質問JavaScript リダイレクトが機能せず、デバッガーがオンになっている場合は Chrome でのみ機能します

だから私は私のリンクを持っています

<div id="confirm-dialog">
    <div class="dialog-inner">
        <p id="confirm-dialog-message"></p>
    </div>
</div>
<a href="/Customer/Delete/73865878346587" class="confirmLink" title="Delete Customer" data-confirm-message="Are you sure you want to delete this customer?">Delete</a>

そして、私は私のjavascriptを持っています

    $('.confirmLink').click(function (e) {
    BodyScrolling(false);

    var theHref = $(this).attr("href");
    var theTitle = $(this).attr("title") == null ? "Confirm..." : $(this).attr("title");
    var theText = $(this).attr("data-confirm-message") == null ? "Are you sure?" : $(this).attr("data-confirm-message");

    $("#confirm-dialog-message").html(theText);
    $("#confirm-dialog").parent().css({ position: "fixed" }).end().dialog("open");
    $("#confirm-dialog").dialog({
        title: theTitle,
        close: function() {
            BodyScrolling(true);
        },
        buttons: [
        {
            text: "Yes",
            class: "mws-button red",
            click: function () {
                $("#confirm-dialog").dialog("close");
                window.location.href = theHref;
                return false;
            }
        },
        {
            text: "No",
            class: "mws-button black",
            click: function () {
                $("#confirm-dialog").dialog("close");
            }
        }]
    });
    return false;
});

そのため、[削除] リンクをクリックすると、[はい] ボタンと [いいえ] ボタンを含む確認ダイアログが表示され、css が正しくスタイル設定され、リンクの href がキャプチャされて [はい] ボタンにバインドされます。「いいえ」をクリックすると、キックバックされ、それ以上何も起こりません - 正解です。

[はい] をクリックすると、キャプチャした元の href に移動する必要があります。リダイレクトの直前に [はい] ボタンをクリックするとアラート (theHref) がスローされ、正しいアドレス (/Customer/Delete/73865878346587) が表示されますが、リダイレクトは行われません。

Chrome デバッガーを開いて JavaScript をデバッグしたり、エラーが発生したかどうかを確認したりすると、すべてが期待どおりに機能し、正しくリダイレ​​クトされます。

IEでも動作しません。

私が試してみました...

window.location.href = theHref
window.location = theHref
location.href = theHref
$(location).attr('href', theHref)

return false; も追加してみました。私のリダイレクト後。何も機能しません。

上で同じ質問に追加したリンクは、[はい] ボタンがページ上に ... which mine としてレンダリングされていることを確認するように言いました。

誰でも光を当てることができますか?

4

2 に答える 2

0

それ以外のwindow.location.href = theHref;

試しましたwindow.location.replace(theHref);か?

基本に戻って、次のことを試してください。window.location = theHref;

于 2013-07-05T17:29:53.320 に答える