2

私は現在、次のように、javascriptを介して、選択したばかりのタブの値が割り当てられている非表示の入力フィールドを使用しています。

function onTabSelecting(sender, args) {
    var tab = args.get_tab(); //get selected tab
    document.getElementById("MainContent_hdnPreviousTab").value = tab.get_text(); //assign value to hidden field
    if (tab.get_pageViewID()) { //ignore
    tab.set_postBack(false);
    }
}

次に、クライアント側(ajax)のPageLoad()イベントで、ページが返されるときにこの割り当てられた値を使用します。

<script type="text/javascript" language="javascript">
    var runOnce = false;
    function pageLoad() {
        if (!runOnce) {
            var lastTab = document.getElementById("<%= hdnPreviousTab.ClientID %>");
            if (lastTab.value) {
                if (tabStrip) {
                    var tab = tabStrip.findTabByText(lastTab.value);
                    if (tab) {
                        tab.click();
                    }
                }
            }
            runOnce = true;
        }
    }
</script>

現在IEではこれは正常に機能します(私は正しいですか?)、以前にjavascriptで設定された値はまだそこにあり、ユーザーがページを離れたタブをlcoateすることができます。しかし、FF、Chromeなどではそのような運はありません。ビューステートを使用しているかどうかに関係なく、非表示フィールドは空の状態(value = "")に戻ります。

この状況で適切な代替方法を誰かが持っているかどうかについて非常に興味があります。不明な点がある場合はお知らせください。

どうもありがとう。

4

1 に答える 1

1

localstorageを使用できます。

localStorage.setItem('tab', value);

于 2013-02-04T15:59:06.283 に答える