- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我为我正在从事的项目提出了一些自定义本地化解决方案。我的想法是我的 HTML 可以包含以下内容:
<h2 data-l10n="HELLO" data-l10n-params="['Visitor', new Date()]"></h2>
当页面启动时,将运行如下 JavaScript 函数:
localizeAll: function(sel) {
var selector = sel || document,
$o = $(selector);
$o.find('[data-l10n]').each(
function() {
var $t = $(this),
val = $t.attr('data-l10n'),
params = $t.attr('data-l10n-params'),
po = null;
if (typeof params !== 'undefined') {
po = eval(params);
log(params, po);
}
var res = doLocalize(val, po);
if (res[0] !== '<') {
$t.text(res);
} else {
$t.text(val);
}
});
}
所以基本上我们搜索具有 data-l10n
属性的任何元素,并为每个对象调用 doLocalize()
。此外,该元素可以有一个 data-l10n-params 属性,它只是一个可以解析为数组的字符串文字。该字符串被评估(params
字符串变成 po
数组),并且 po
作为可选参数提供给 doLocalize()
第二个参数。
因此,Firebug 中的输出(来自 log(params, po);
语句)为:
['Vistor', new Date()] ["Vistor", Date {Thu Nov 17 2011 10:10:31 GMT+0100 (CET)}]
所以是的,我正在使用 eval。是的,我知道“评估是邪恶的”。但偶尔,我需要向 doLocalize()
传递一个参数。
如果没有评估,这怎么能完成?
最佳答案
我认为你的问题在于你在 HTML 中有效地嵌入了 JavaScript(这违反了 unobtrusive JavaScript 原则)。
在您的位置,我将添加一个额外的 l18n-params.js
文件,其中包含以下内容:
var dataL10Nparams = {
HELLO = ['Visitor', new Date()]
}
现在不用从 HTML 属性读取参数并评估,只需调用:
dataL10Nparams['HELLO']
关于javascript - "eval is evil",但我有选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8164755/
我有我正在设计的这个数据库。 它需要包含几十个表,其中包含我们提供的记录(一堆默认值)以及用户可以添加的记录。为了不让用户射中自己的脚,有必要不让他修改默认记录。 有很多方法可以促进这一点,但我喜欢为
我正在阅读 SQLite FAQ ,然后看到了这段话: Threads are evil. Avoid them. 我不太明白“线程是邪恶的”这句话。如果这是真的,那么替代方案是什么? 我对线程的粗浅
对于我的新 JavaScript 库,我有一个函数 isBinary返回 true如果传递的值为 1 , 0 , true ,或false 。为了便于编写,我使用以下代码,但我想知道我是否减慢了处理速
在此处关于 SO 的讨论之后,我已经多次阅读可变结构是“邪恶”的评论(就像在对 question 的回答中一样)。 C# 中的可变性和结构的实际问题是什么? 最佳答案 结构是值类型,这意味着它们在传递
我最近开始一起使用 emacs、Evil 和 org-mode。在组织模式下做笔记时,有时程序会进入 我可以在框架底部的状态栏上看到的模式。启动 emacs 时,我通常会看到 在状态栏上。 我假设
是的,我是开始使用 EMACS 但不愿意放弃我学到的 VIM 技能的人。 邪恶绝对是好事。 我遇到的问题是文档太少。显然,我使用了 evil 中定义的键映射的一小部分。 所以我看了一下 evil-ma
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 7 年前。 Improv
有没有办法在 Emacs 中的 Evil 中输入否定参数?即我想向后删除 5 行,而不是 5dd,有类似 -5dd 的东西吗? 最佳答案 Emacs 支持这一点。键 Control + 破折号或 C-
以下链接在vim中给出了答案, https://superuser.com/questions/216411/go-to-middle-of-line-in-vim 使用下面的脚本 map gm :c
在为 emacs 中的 vim 仿真加载 EVIL 之前,我的 .emacs 文件中有以下内容: (activate-input-method "english-dvorak") (setq defa
有很多关于 getter 和 setter 是“邪恶的”以及什么不是。 我的问题是:以下二传手是邪恶的吗? (为简洁起见,其余类(class)省略) int balance public void d
我为我正在从事的项目提出了一些自定义本地化解决方案。我的想法是我的 HTML 可以包含以下内容: 当页面启动时,将运行如下 JavaScript 函数: localizeAll: function(
我正在尝试实现 Evil Hangman 的一个版本,其中游戏会根据最难猜到的内容更改单词。但是我遇到了一个错误,我似乎无法发现它。这可能很愚蠢,但感觉就像我已经盯着它看了好几个小时。在它崩溃之前,我
因此,对于我正在编写的与安全相关的应用程序,我实际上想使用 RFC3514(“The Evil Bit”)来确定网络中的哪些流量集在每个数据包级别上是恶意的或不是恶意的。这用作辅助机器学习引擎的训练数
与此问题相关:How to disable x paste in emacs 这适用于鼠标 (setq mouse-drag-copy-region nil) 我如何在 emacs 中为 Evil 模
在 vim 我的 .vimrc 中有这个: " Easy window navigation map h map j map k map l 如何在 evil-mode 下获得简单的窗口导航?
在我的 ~/.vimrc 中,在过去的 15 年里,我有以下两个键绑定(bind)让我自己更容易进入命令模式: nmap ; : vmap ; : 在 emacs evil-mode 下有没有简单的方
我想模拟我在 vim 中的行为,但在 emacs evil-mode 中。我希望 * 搜索当前视觉选择的文本。下面的代码可以正常工作,但按 n 或 N 不会保留搜索字符串 (define-key ev
我不喜欢插入状态,所以我想用emacs-state代替它。但是此设置不起作用: (add-hook 'evil-insert-state-entry-hook 'evil-emacs-state) 按
我在实际教程中问过这个问题,但不确定我是否会在将近 2 个月大的时候得到答案......所以我会在这里看一看...... 教程在这里:Build a WordPress Plugin to Add A
我是一名优秀的程序员,十分优秀!