Javascript &引用;“欢迎”;html文本

Javascript &引用;“欢迎”;html文本,javascript,html,css,Javascript,Html,Css,有没有办法使用css和/或javascript隐藏“希腊”HTML文本,如下所示: 所有列都有普通文本。第2列、第3列和第4列有“greeked”文本。单击它们会显示普通文本,第一列显示“希腊语”。 我需要的是,字符以某种方式被正方形所取代,如图所示,或类似的符号。这样,它们被隐藏,但文本长度、单词、段落和所有内容都被保留。您可以使用自定义字体,其中每个字符都是正方形。然后,您可以通过更改CSS样式在可读字体和自定义字体之间切换。缺点是用户可以复制文本并将其粘贴到文本编辑器中以使其可见 另一种

有没有办法使用css和/或javascript隐藏“希腊”HTML文本,如下所示:

所有列都有普通文本。第2列、第3列和第4列有“greeked”文本。单击它们会显示普通文本,第一列显示“希腊语”。
我需要的是,字符以某种方式被正方形所取代,如图所示,或类似的符号。这样,它们被隐藏,但文本长度、单词、段落和所有内容都被保留。

您可以使用自定义字体,其中每个字符都是正方形。然后,您可以通过更改CSS样式在可读字体和自定义字体之间切换。缺点是用户可以复制文本并将其粘贴到文本编辑器中以使其可见

另一种选择是替换内容字符串本身。用javascript而不是HTML存储每列的内容。在
.onload
处理程序中,生成每个字符串的模糊版本,其中每个非空白字符都替换为unicode字符
(代码点0x25a0)。然后将模糊版本或未模糊版本分配给每个div的
.innerHTML


不过,这个选项仍然允许通过查看源代码进行作弊。当您希望用户在被允许查看文本之前完全无法访问文本时,您将无法绕过服务器端解决方案。

使用jquery将使这更容易,因此我的jquery解决方案将在mouseout上显示文本。不完全是你想要的,但会非常相似

$('#div').on('mouseover',function(){
     $(this).css('color','transparent');
     $(this).css('text-shadow','0 0 5px rgba(0,0,0,0.5)');
}).on('mouseout',function(){
     $(this).css('color','black');
     $(this).css('text-shadow','none');
});

您可以在css中执行此操作。是免费的,包括一个可以通过@font-face加载的web字体。然后,您可以将字体与添加(或删除)的活动类交换,或者在任意动画上与javascript交换。

您可以使用正则表达式将每个文本容器中的每个字符替换为■ 性格(中方形)—


不确定每个字母的宽度是否相等,但您可以编写脚本,通过正则表达式(to*)从原始文本创建greekText,并在DOM中插入display:none。然后触发希腊语()和ungreek()。很酷的作业:)字母可以模糊而不是正方形吗?如果你想保留文本长度和位置,你可以编写一个脚本,将每个字母包装成
span
,并将
span
颜色和
背景色设置为相同的颜色。你可以用■;性格(中方形)
字符串。替换(/()/g,■;)一个问题:如何显示这些div中的文本(使用
'
,“纯”文本)?不幸的是,这在源代码和复制/粘贴中仍然可见。除非这不重要。@SamHolmes我已经添加了第二个选项,不会出现此问题。@Sam:几乎在任何情况下,通过JavaScript修改页面,底层源代码都是可以查看的,当然?@DavidThomas意味着隐藏数据的唯一方法是从隐藏数据开始,并让JS能够对其进行解密,对吗?我倾向于同意你的看法。您可以在不使用复杂的MySQL设置的情况下混淆它,只需使用PHPs
file\u get\u contents()
函数并通过jQuery的
$.ajax()
从文本文件检索数据。当然,您也可以使用MySQL来实现这一点,但除非混淆源代码非常重要,否则没有必要这么做。
jQuery事件处理程序中的这个
指的是
doElement
,而不是jQuery对象。因此,您需要将
这个
包装到
.css()
的jQuery构造函数中才能工作:
$(这个)…
您首先只需在一个变量中获取文本,然后将其复制到另一个变量中,您将用square替换字符。第一个文本变量仍然存在。
string.replace(/(.)/g, "■");