現在、Businesss Catalyst Webアプリに取り組んでいますが、深刻な問題があります。Webアプリのメールフィールドを難読化する必要があります。残念ながら、Webアプリアイテムからのすべての情報が前処理なしでHTMLページに配置されているため、これを行う簡単な方法はありません(BCのバックエンドにアクセスできないため)。
これが今の私のコードです:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script>
<!--
function CryptMailto()
{
var n = 0;
var r = "";
var x = document.getElementById("test");
var s = "mailto:"+x.value;
var e = x.value;
e = e.replace( /@/, " [at] ");
e = e.replace( /\./g, " [dot] ");
for( var i=0; i < s.length; i++ )
{
n = s.charCodeAt( i );
if( n >= 8364 )
{
n = 128;
}
r += String.fromCharCode(n+1);
}
return "<a href=\"javascript:linkTo_UnCryptMailto('"+ r +"');\">"+ e +"</a>";
}
function UnCryptMailto( s )
{
var n = 0;
var r = "";
for( var i = 0; i < s.length; i++)
{
n = s.charCodeAt( i );
if( n >= 8364 )
{
n = 128;
}
r += String.fromCharCode( n - 1 );
}
return r;
}
function linkTo_UnCryptMailto( s )
{
location.href=UnCryptMailto( s );
}
// -->
</script>
</head>
<body>
<input style = "" id = "test" type = "text" value = "test@gmail.com" />
<script>document.write(CryptMailto());</script>
</body>
</html>
ここで問題となるのは、非表示フィールドを「ソースの表示」から引き続き表示できることです。
フロントページに表示される前にフィールドを前処理する方法はありますか?