【发布时间】:2015-07-04 21:10:21
【问题描述】:
我已经为此苦苦挣扎了好几天...
使用 vQmod 文件的 MVC 模式。
我正在尝试使用谷歌翻译以编程方式在翻译语言之间切换。
代码:
vqMod 文件:(同时加载js.cookie.js, googTrans.js,jquery.cookie.js)
这个vqmod修改了header.php controller
$l = $this->session->data['language'];
setcookie("googtrans", "", time()-3600); // kill cookie
setcookie("googtrans", "/en/" . $l); // set new one - does not work
setcookie("SETCOOKIE", "" . $l); // this actually worx
设置第一次 cookie,但之后不重写 cookie
尝试使用 jQuery.cookie.js / js.cookie.js 更改 cookie:
使用相同的 vQmod 文件修改 header.tpl
<?php echo "<script type='text/javascript'>
$.cookie('googtrans', '/en/" . $this->session->data['language'] . "');
</script>";?>
在加载 googTrans.js 或调用 //translate.google.com/translate_a/element.js?cb=googleTranslateElementInit 之前
googTrans.js
function googleTranslateElementInit() {
new google.translate.TranslateElement({
pageLanguage: 'en',
includedLanguages: 'fr,ru',
layout: google.translate.TranslateElement.InlineLayout.HORIZONTAL,
multilanguagePage: true,
gaTrack: true,
gaId: 'UA-XXXXX-X'},
'google_translate_element');
}
没有运气...:-( 有任何想法吗??什么时候写cookie?来自 header.php 或 header.tpl?为什么 php 不改变 cookie 或者 jQuery 也不改变... 怎么办?? 如果您需要更多信息,我会更乐意回复。 谢谢
【问题讨论】:
-
检查浏览器 cookie,你看到 2 个名为 (googtrans) 的 cookie - cookie 也有域名/路径名。如果您使用 chrome goto 开发者工具、资源、扩展 cookie -- 检查如何在网上查看其他浏览器的 cookie
-
@Tasos 有 2 个 googtrans cookie
-
你看。所以请确保 Jquery cookie 和 Php cookie 具有相同的域/路径——通常对于本地域是 (/)——更多信息在这里 PHP——php.net/manual/en/function.setcookie.php——这里是 JQUERY——github.com/carhartl/jquery-cookie跨度>
-
@Tasos..我想你会理解的......它们是相同的......没有不同!如果他们会有所不同,你不认为我会提到的是......
-
试试 -- Cookies.set('name', 'value', { path: '' }); -- 显然 -- path: '' --- 文档说创建一个过期的 cookie,对当前页面的路径有效:
标签: javascript php jquery cookies google-translate