- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我的页面中有这段代码:一个非常简单但有效的脚本,可以将它翻译成多种语言。
// preparing language file
var aLangKeys=new Array();
aLangKeys['en']=new Array();
aLangKeys['es']=new Array();
aLangKeys['fr']=new Array();
aLangKeys['cn']=new Array();
aLangKeys['en']['language']='english';
aLangKeys['es']['language']='español';
aLangKeys['fr']['language']='français';
aLangKeys['cn']['language']='中文';
aLangKeys['en']['buy']='buy';
aLangKeys['es']['buy']='comprar';
aLangKeys['fr']['buy']='acheter';
aLangKeys['cn']['buy']='买';
$(document).ready(function() {
// onclick behavior
$('.language').click(function() {
var lang = $(this).attr('id'); // obtain language id
if ($(this).attr('id') == 'es') {
$('.language').attr('id', 'fr');
}
else if ($(this).attr('id') == 'fr') {
$('.language').attr('id', 'cn');
}
else if ($(this).attr('id') == 'cn') {
$('.language').attr('id', 'en');
}
else if ($(this).attr('id') == 'en') {
$('.language').attr('id', 'es');
}
// translate all translatable elements
$('.translate').each(function(i){
$(this).html(aLangKeys[lang][ $(this).attr('key') ]);
});
} );
});
// HERE'S WHERE MY BRAIN STARTS MALFUNCTIONING
if ((window.location.pathname).split('/')[1] == 'es') {
// <-- EXECUTE FUNCTION ABOVE TO TRANSLATE TO SPANISH BASED ON PATHNAME
}
else if ((window.location.pathname).split('/')[1] == 'fr') {
// <-- EXECUTE FUNCTION ABOVE TO TRANSLATE TO FRENCH BASED ON PATHNAME
}
else {
}
所以它基本上是在单击按钮时进行翻译(更改页面上某些元素的值)。每次单击它时,都会更改为下一种语言。这很好用。
问题是,如果用户从某个链接访问,我希望它“自动”更改为某种语言:
例子:
我尝试使用 javascript 来“伪造”按钮点击,但没有成功。还尝试“命名”翻译函数并“调用/运行”它。
我知道这更容易做,但我把它弄复杂了,但我就是个菜鸟。
请帮忙。或者只是一个提示。提前致谢,抱歉我的英语不好。
最佳答案
基于上面的代码,有几点想法:
1) 让我们将 aLangKeys
更改为一个对象,每个键都是另一个对象。即
var aLangKeys={};
aLangKeys['en']={}; // Thats a named key/prop so we want an object here
...
aLangKeys['en']['language']='english'; // ditto the above comment
2) 我们可能希望将检查局部性的逻辑移到就绪函数中。即
$(document).ready(function() {
// onclick behavior
$('.language').click(function() {
...
});
// we want access to the DOM *and* maybe certain functions that do stuff. So its gotta be in here...
if ((window.location.pathname).split('/')[1] == 'es') {
// <-- EXECUTE FUNCTION ABOVE TO TRANSLATE TO SPANISH BASED ON PATHNAME
}
else if ((window.location.pathname).split('/')[1] == 'fr') {
// <-- EXECUTE FUNCTION ABOVE TO TRANSLATE TO FRENCH BASED ON PATHNAME
}
}); // end of ready function
几个原因:
a) 我们想根据路径名/位置等信息更改页面内容。所以我们想知道页面首先加载。
b) 也许我们会想要创建一个函数来进行语言处理/更改并从多个地方调用它。我们希望该功能在我们的位置检查逻辑范围内。如果我们在就绪函数范围内定义它,我们将需要在同一范围内调用该函数的任何逻辑
关于javascript - 基于 .pathname 运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51127707/
我正在尝试优化我的 JavaScript 代码以提高速度。 我需要经常访问 document 对象的某些属性,例如 document.location.pathname ,甚至更糟糕的是 docume
我想获取目录中除隐藏文件(名称以点开头的文件)之外的所有文件: @files = Pathname.new('.').children.select do |file| file.basename
我在使用 opendir() 时收到了一些奇怪的结果: int dtw(char *path) { struct stat statbuf; ... else if (S_IS
我刚刚开始学习 jquery,我想知道我做得是否正确。这是我的代码 var images = ['1.jpg', '2.jpg', '3.jpg', '4.jpg', '5.jpg','6.jpg'
我正在尝试在 Angularjs 中编写内联条件语句。基本上,我想做到这一点,以便当单击页面上的选项卡时,页面会更新为 aria-current="page"。我要执行此操作的方法是检查选项卡 anc
所以我的页面中有这段代码:一个非常简单但有效的脚本,可以将它翻译成多种语言。 // preparing language file var aLangKeys=new Array(); aLangKe
我正在尝试重定向到相对网址,如下所示 setTimeout(window.location.pathname = '/help/fusion/index.php#3', 500); 但是#在传递给wi
我正在使用 Pathname.glob 来匹配文件。 Pathname.glob("**/*") 只匹配非隐藏文件 Pathname.glob("**/.*") 只匹配隐藏文件 有什么办法可以同时满足
我正在做一个项目,我有一个动态确定的挂载点,并提供了一组绝对路径来处理目标卷。由于这些文件尚不存在,我使用 Pathname 类来处理文件名操作。但是,在连接具有相同根的路径时,Pathname 似乎
考虑以下 Javascript: var anchors = document.getElementsByTagName('a'); for(var i=0; i < anchors.length;
我目前正在使用以下代码来定位单个页面,例如 http://my-website.com/about/ if (document.location.pathname == "/about/")
假设我访问 Javascript 的 window.pathname 并获取 /you/are/here。 是否可以构造一个正则表达式,从头开始逐步匹配路径的每个部分?换句话说,my_regex.ex
我正在使用 var url = location.pathname.split("/") 来分割 URL。 结果的第一个和最后一个元素始终为空。谁能解释一下为什么会这样? 谢谢。 最佳答案 因为路径以
我有一个类似于此的网址: www.mysite.com/products/ 我用它来测试路径名: if (/\/products\//.test(window.location)) { _gaq.pu
我想在主域和 /the/rest/of/url 之间的 URL 中添加哈希值。 显然,我做得不对。 我用过: window.location.hash = location.pathname; 希望
我希望 jQuery 提取 url,然后解析它以查找机场。如果找到机场,我想在列表项中添加一个类 包含 html“机场”的标签。 这是我目前所拥有的: JQuery path_name=locati
我正在为应用程序设置身份验证。在我发出登录后请求后,将发送一个 JSON Web token 作为响应。我可以通过 Ajax 将其附加到 header 。问题是在登录后使用 window.locati
不确定为什么我的简单 Main.test 文件中会出现此错误。 Main.js 的构造函数 export class Main extends Component { constructor(
我正在尝试使用 location.pathname.indexOf 让条件 jQuery 在我网站的某些页面上工作。 这个有效: if (location.pathname.indexOf("/exa
我更新了我的项目的 Ruby 和 Rails 版本。 ruby 2.2.3 –> 2.5.1 rails 4.1.8 –> 5.1.7 现在,当我启动服务器时,出现此错误: F, [2020-02-0
我是一名优秀的程序员,十分优秀!