ios app back按钮不保存cookie

时间:2012-09-26 14:36:40

标签: javascript ios5 ios-simulator ios4

该功能允许我们在ios应用程序上设置特定cookie时在语言翻译之间来回切换。目前,所使用的代码适用于所有浏览器,您可以使用页脚中的两个按钮浏览应用程序并切换cookie。

一旦我们在ios模拟器上测试了功能,就会出现以下问题。当我们在一个页面上,例如我们选择了英语,如果我们转到下一页并选择日语,页面将重新加载日语翻译,然后当我们按后退按钮转到上一页时它将恢复为英语并且不再设置cookie。

后退按钮:

<div onclick="javascript:createCookie('previousPagePath',location.pathname,(1/24/60)); history.go(-1);">
    <img src="<!--{$rewriteBase}-->images/common/previous.png" alt="" />
    <div>
        <span class="langTranslate">Back//戻る</span>
    </div>
</div>

下面是用于创建cookie的javascript,默认情况下它以英语('0')开头。日语是('1')。

使用Javascript:

// language selection

$(function() {
    if(readCookie('langSelect') == null) {
    // create cookie and set it to english by default
    createCookie('langSelect', '0', 1);
}
// set selected language
$('.langBtn').click(function() {
    var selectedLangCode = $(this).attr('data-lang-code');
    createCookie('langSelect', selectedLangCode, 1);
    location.reload();
});
});

每个页脚都包含以下Javascript 您将看到前几行用于将英语与日语分开,因为它出现在我们的数据库中,如下所示:(英文翻译//日语翻译)

<script type="text/javascript">
// set current language
$('.langTranslate').each(function() {
    var label = $(this).text(),
    currentLang = parseInt(readCookie('langSelect'), 10),
    delimiter = '//';
    if(label.length >= 4 && label.indexOf(delimiter) != -1) {
        label = label.split(delimiter);
            if(typeof label[currentLang] !== 'undefined') {
                $(this).text(label[currentLang]);
            }
        }
});
</script>

在任何情况下都会在浏览器中保存cookie,但是当我们按下ios上的按钮时,会删除任何想法吗?

1 个答案:

答案 0 :(得分:1)

我们将Ipad设备更新为IOS 6后解决了此问题