【问题标题】:Ondrag ROT-13/ROT-47 decodeOndrag ROT-13/ROT-47 解码
【发布时间】:2011-04-18 17:26:45
【问题描述】:

我有一个小网站,我想对其中的一些文本进行模糊处理,以保护不小心不合时宜地阅读它的用户的破坏。

就像 imdb 上的关键字一样,您必须滚动才能显示它们。

我认为如果文本被标记,这将是一种很好的互动方式来显示文本。

例子:

程序员如何表达 h(is)|(er) 爱吗? Zl srryvatf sbe lbh ner uneqpbqrq。

现在您可以拖动标记混淆的文本,就像准备将其复制到剪贴板一样,它应该会显示出来。

有没有办法做到这一点?我目前的问题是一种在 javascript 中确定当前选择的方法。

【问题讨论】:

    标签: javascript html css text transform


    【解决方案1】:

    我能想到一种只使用 CSS 的棘手方法:

    使用与背景颜色相同的颜色文本!然后当用户突出显示时,文本就会显示出来。您需要勾勒或提请注意他们需要突出显示的部分以使其明显。

    另一种方式:

    将 rot13 填充到只读文本输入中,并附加一个 select 事件和一个解码它的 AJAX 调用。仅适用于适合输入的较小的剧透文本。您可以使用 textarea 尝试此操作,但它不接受 readonly 属性(可能没关系)。

    还有很多其他方法可以做到这一点(例如隐藏/显示 div),但这些是我认为最接近/最简单的方法,符合您选择文本以触发剧透的要求。

    编辑:使用背景颜色解决方案,您不想对文本进行编码,只需使其“不可见”,直到它被突出显示。这实际上是一个相当俗气的解决方案,还有很多其他更好的解决方案,但好的部分是它只是 css。老实说,我认为强制一个完整的突出显示对您的用户来说会很痛苦,只需将 rot13 值存储在一个位置,将实际值存储在另一个位置(可能是隐藏跨度),然后使用 js 在单击时将它们交换出来。无需单独实际处理解码。你可以单独使用 CSS 和一些智能的 :hover:focus 选择器来做到这一点。

    EDIT2:出于某种原因,我没有想到你可以单独使用 javascript 进行 rot13 解码,我来自 php 世界,所以现在我觉得很愚蠢。抱歉,我没有更好地回答您的问题,但希望其中一些有用。 GL!

    【讨论】:

    • 我喜欢颜色/背景的想法。但是我如何显示原始的编码文本呢? - 我想结合当今的可用性标准来模拟这种老式的 usenet 体验
    • @Joe Hopfgartner:我听到你在说什么,但我不认为当你可以在你的 html 中隐藏解码的值时,真的需要动态解码。我更新了我的答案。
    【解决方案2】:

    jCarat (jQuery Caret Plugin) 应该可以满足您的需求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-03
      • 2018-08-30
      相关资源
      最近更新 更多